Go Web --- 创建一个Article的增删改查
掌握数据的增删改查之后,就可以做一些小demo,巩固一下基础,让语法更加熟练,所以下面是按照Go web编程里面的文章管理操作,写的一个代码:
package main import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
) type Article struct {
Id int
Title string
Content string
Author string
CreateTime string
} var db *sql.DB //注意db的类型,声明成全局变量是为了让所有的方法和函数都能使用
var err error //init会在主函数之前执行
func init() {
dsn := "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8"
db, err = sql.Open("mysql", dsn)
CheckError(err)
} func CheckError(err interface{}) {
if err != nil {
panic(err)
}
} func (article *Article) AddArticle() bool {
str := "insert into article (title,content,author,create_time) values (?,?,?,?)"
stmt, err := db.Prepare(str)
CheckError(err)
result, err := stmt.Exec(article.Title, article.Content, article.Author, article.CreateTime)
CheckError(err)
if num, _ := result.RowsAffected(); num > 0 {
id, _ := result.LastInsertId()
fmt.Println("Add article", id, " success")
return true
} else {
fmt.Println("Add article", article.Id, " failed")
return false
}
} func (article *Article) DeleteArticle() bool {
str := "delete from article where id=?"
stmt, err := db.Prepare(str)
CheckError(err)
result, err := stmt.Exec(article.Id)
CheckError(err)
if num, _ := result.RowsAffected(); num > 0 {
fmt.Println("delete article", article.Id, " success")
return true
} else {
fmt.Println("delete article", article.Id, " failed")
return false
}
} func GetArticleById(id int) (Article, error) {
article := Article{Id: id}
str := "select title,content,author,create_time from article where id=?"
stmt, err := db.Prepare(str)
CheckError(err)
stmt.QueryRow(id).Scan(&article.Title, &article.Content, &article.Author, &article.CreateTime)
return article, nil
} func GetArticleList(start, offset int) []Article {
var articles []Article
str := "select id,title,content,author,create_time from article limit ?,?"
stmt, _ := db.Prepare(str)
rows, err := stmt.Query(start, offset)
CheckError(err)
for rows.Next() {
article := Article{}
rows.Scan(&article.Id, &article.Title, &article.Content, &article.Author, &article.CreateTime)
articles = append(articles, article)
}
rows.Close()
return articles
} func (article *Article) UpdateArticle() bool {
str := "update article set title=?,content=?,author=?,create_time=? where id=?"
stmt, _ := db.Prepare(str)
result, err := stmt.Exec(article.Title, article.Content, article.Author, article.CreateTime, article.Id)
CheckError(err)
if num, _ := result.RowsAffected(); num > 0 {
return true
} else {
return false
}
} func main() { }
Go Web --- 创建一个Article的增删改查的更多相关文章
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能
此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...
- ASP.NET Web API基于OData的增删改查,以及处理实体间关系
本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ...
- [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系
本文转自:http://www.cnblogs.com/darrenji/p/4926334.html 本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先 ...
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...
- 数据库开发基础-SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)
控制数据库的服务: 方法一: 1.Windows+R 打开运行 打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...
- day84-仿照admin实现一个自定义的增删改查组件
一.admin的使用 app01的admin.py文件: class BookConfig(admin.ModelAdmin): list_display=[] list_display_links= ...
- 数据库开发基础-★SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)★
控制数据库的服务: 方法一: 1.Windows+R 打开运行 打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...
- 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查
本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...
随机推荐
- spring cloud 实践之hystrix注意事项
当我们写类似下面代码时 package demo1.demo1; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org ...
- 【Beta】博客合集
[Beta Scrum]冲刺! 1/5 [Beta Scrum]冲刺! 2/5 [Beta Scrum]冲刺! 3/5 [Beta Scrum]冲刺! 4/5 [Beta Scrum]冲刺! 5/5
- S/4 HANA中的MATDOC和MATDOC_EXTRACT
最近做了销售和物料管理方面的一些需求,因此对S/4中的MM的数据模型有了一定的了解.目前网络已经有一些介绍物料凭证表MATDOC的文章,内容好像不是很详细,另外也没发现介绍库存变更数据表MATDOC_ ...
- Go搭建后台服务学习记录
资料: 1. go基础 https://juejin.im/entry/58329f84da2f600063074382 https://www.w3cschool.cn/go/ 2.go的一个orm ...
- UVA116-Unidirectional TSP(动态规划基础)
Problem UVA116-Unidirectional TSP Accept: 7167 Submit: 56893Time Limit: 3000 mSec Problem Descripti ...
- [ZJOI2018]胖
嘟嘟嘟 都说这题是送分题,但我怎么就不觉得的呢. 看来我还是太弱了啊-- 大体思路就是对于每一个设计方案,答案就是每一个关键点能更新的点的数量之和. 关键在于怎么求一个关键点能更新那些点. 首先这些点 ...
- Ansible 拷贝文件或目录
写法如下: [root@localhost ~]$ ansible 192.168.119.134 -m copy -a "src=/etc/passwd dest=/tmp/passwd ...
- ssm框架的整合搭建(三)
mybatis逆向工程工具类的使用---mybatis generator 项目结构 配置文件 <?xml version="1.0" encoding="UTF ...
- Python框架学习之Flask中的常用扩展包
Flask框架是一个扩展性非常强的框架,所以导致它有非常多的扩展包.这些扩展包的功能都很强大.本节主要汇总一些常用的扩展包. 一. Flask-Script pip install flask-scr ...
- [ASP.NET]ScriptManager控件使用 转载
目录 概述 局部刷新 错误处理 类型系统扩展 注册定制脚本 注册 Web 服务 在客户端脚本中使用认证和个性化服务 ScriptManagerProxy 类 添加 ScriptManager 控件 客 ...