在golang中要实现对数据库的操作, 一个比较好用的方式就是使用xorm,xorm是一个简单而强大的go语言orm库,通过它可以使数据库操作非常简便。 在xorm里面,可以同时存在多个orm引擎,一个orm引擎称为engine,一个engine一般只对应一个数据库。
golang的连接池配置
这里初始化一个全局的xorm.engine对象, xorm.engine通过调用xorm.newengine生成在很多其他的api都需要传入该对象作为参数。 这里需要理解这里设定的3个参数的意义:
setmaxidleconns()
setmaxopenconns()
setconnmaxlifetime
go xorm来操作mysql
很有用,来看下:
package main import ( "fmt" "github.com/go-xorm/xorm" "github.com/go-xorm/core" _ "github.com/go-sql-driver/mysql" ) // 对应数据库的tablename必须为student // 执行mysql时,对应的字段为xxx,yyy,zzz; 也可以省掉,默认的mysql字段为id,username,address type student struct { id int `xorm:"int(11) 'xxx'"` username string `xorm:"varchar(64) 'yyy'"` address string `xorm:"varchar(256) 'zzz'"` } func main() { engine, err := xorm.newengine("mysql", "root@/taoge?charset=utf8") // dbname是taoge if err != nil{ fmt.println(err) return } // 如下ping可以不要 // if err := engine.ping(); err != nil{ // fmt.println(err) // return // } //engine.showsql(true) // 显示sql的执行, 便于调试分析 engine.settablemapper(core.snakemapper{}) st1 := new(student) st1.username = "taoge" st1.address = "china" affected, err := engine.insert(st1) fmt.println(affected) st2 := new(student) result,err := engine.where("xxx=?", 1).get(st2) fmt.println(result) fmt.println(st2.username) fmt.println(st2.address) }
创建数据库:
create table `student` ( `xxx` int(11) not null auto_increment, `yyy` varchar(64) not null, `zzz` varchar(256) not null , primary key (`xxx`) ) engine=innodb auto_increment=1 default charset=utf8;
运行结果:
1
true
taoge
china
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对移动技术网的支持。如果你想了解更多相关内容请查看下面相关链接
如对本文有疑问, 点击进行留言回复!!
VSCode1.4 搭建Golang的开发调试环境(遇到很多问题)
网友评论