内容简介:版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究。 https://blog.csdn.net/yincheng01/article/details/84134161
版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究。 https://blog.csdn.net/yincheng01/article/details/84134161
下载第三方依赖
go get github.com/jmoiron/sqlx go get github.com/go-sql-driver/mysql
- 其中github.com/jmoiron/sqlx是我们需要用到的主要类库
- github.com/go-sql-driver/mysql是作为 MySQL 的驱动程序存在的,我们只需要执行包的init方法即可
引入依赖
import ( "github.com/jmoiron/sqlx" //执行mysql包的init方法 _"github.com/go-sql-driver/mysql" "fmt" )
建立测试数据库表
create database mydb charset=utf8; use mydb; create table person( id int primary key auto_increment, name varchar(20) unique not null, age int default 0, dollar float default 1 ); alter table person add sex bool; alter table person add schoolday date; alter table person add birthtime datetime;
定义与数据表向匹配的结构体
/* id | name | poem | age | dollar | sex | schoolday | birthtime */ type Person struct { //所有属性必须公开——框架会转化查询结果为结构体对象 //标签名写法:`db:"表字段名"` Name string `db:"name"` Age int `db:"age"` Dollar float32 `db:"dollar"` }
执行增删改查操作
- 增删改的方式是db.Exec(sql)
- 查询的方式是:db.select(&model,sql)
func main() { //连接数据库 db, _ := sqlx.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/mydb") defer db.Close() //执行增删改,获得受影响的行数 result, _ := db.Exec("insert into person(name,age,sex,schoolday,birthtime) values(?,?,?,?,?);", "双黄蛋", 35, false, 20080813, 20180814164300) rowsAffected, _:= result.RowsAffected() lastInsertId, _ := result.LastInsertId() fmt.Println("受影响的行数",rowsAffected,"最后一条记录的id",lastInsertId) //执行增删改 db.Exec("insert into person(name,age,sex,schoolday,birthtime) values(?,?,?,?,?);", "双黄蛋", 35, false, 20080813, 20180814164300) db.Exec("delete from person where id=?;", 2) db.Exec("update person set name=? where name=?;", "张俩蛋","张全蛋") //执行查询,获得person对象 //用于接收的数据类型是【结构体切片】,必须包含查询字段对应的公开属性,属性标签应写作:`db:"表字段名"` var ps []Person //第一个参数是【结构体切片】的地址 err := db.Select(&ps, "select name,age,dollar from person where name like ?;", "%蛋") if err!=nil{ fmt.Println("err=",err) } fmt.Printf("%T,%v\n", ps, ps) fmt.Println("执行成功!") }
学院 Go 语言视频主页
https://edu.csdn.net/lecturer/1928扫码获取海量视频及源码 QQ群:721929980
以上所述就是小编给大家介绍的《MySQL数据库5:Go与MySQL的交互》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Redis数据库4:Go与Redis的交互
- Struts2和Oracle数据库交互的小Demo
- 如何与以太坊区块链交互并用Python和SQL创建数据库
- 构建自己的地理信息空间数据库及与客户端简单交互
- 竞赛报名 | AI时代数据库交互怎么玩?首届中文NL2SQL挑战赛开战
- iOS 12 人机交互指南:交互(User Interaction)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
颠覆式创新:移动互联网时代的生存法则
李善友 / 机械工业出版社 / 2015-3-1
为什么把每件事情都做对了,仍有可能错失城池?为什么无人可敌的领先企业,却在一夜之间虎落平阳?短短三年间诺基亚陨落,摩托罗拉以区区29亿美元出售给联想,芯片业霸主英特尔在移动芯片领域份额几乎为零,风光无限的巨头转眼成为被颠覆的恐龙,默默无闻的小公司一战成名迅速崛起,令人瞠目结舌的现象几乎都能被“颠覆式创新”法则所解释。 颠覆式创新教你在新的商业竞争中“换操作系统”而不是“打补丁”,小公司用破坏......一起来看看 《颠覆式创新:移动互联网时代的生存法则》 这本书的介绍吧!