来源:自学PHP网 时间:2019-08-07 16:43 作者:小飞侠 阅读:次
[导读] 使用go xorm来操作mysql的方法实例...
|
在golang中要实现对数据库的操作, 一个比较好用的方式就是使用XORM,xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。 在xorm里面,可以同时存在多个ORM引擎,一个ORM引擎称为Engine,一个Engine一般只对应一个数据库。 golang的连接池配置 这里初始化一个全局的xorm.Engine对象, xorm.Engine通过调用xorm.NewEngine生成在很多其他的API都需要传入该对象作为参数。 这里需要理解这里设定的3个参数的意义:
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; 运行结果:
总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对自学php网的支持。如果你想了解更多相关内容请查看下面相关链接 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com