xorm是一个简单而强大的Go语言ORM库. 经过它能够使数据库操做很是简便。 经过xorm框架,开发者能够方便的使用各类封装好的方法来代替原生的sql语句。这样就下降了咱们开发者使用数据库的门槛。本节内容,咱们将经过xorm相关知识的学习,来逐步掌握在代码中如何操做数据库。 读者也能够经过相关的学习文档进行xorm框架的学习,以下是xorm框架相关的学习文档:mysql
xorm的Github仓库地址:github.com/go-xorm/xor…git
xorm说明文档地址:xorm.io/docsgithub
同其余对象关系映射框架同样,xorm也支持链接、操做多种数据库,包括:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle(测试)。具体的每一种数据库类型的驱动安装以下:sql
Mysql: Mysql: github.com/go-sql-driver/mysql数据库
MyMysql: github.com/ziutek/mymy…bash
Postgres: github.com/lib/pqoracle
Tidb: github.com/pingcap/tid…框架
SQLite: github.com/mattn/go-sq…post
MsSql: github.com/denisenkom/…学习
MsSql: github.com/lunny/godbc
Oracle: github.com/mattn/go-oc… (试验性支持)
go get github.com/go-xorm/xorm复制代码
本节内容中,咱们将以链接mysql为案例,演示xorm的相关操做。
建立引擎
engine, err := xorm.NewEngine(driverName, dataSourceName)复制代码
如上经过xorm.NewEngine方法建立一个数据库操做引擎,该方法须要两个参数:driveName和dataSourceName。在mysql引擎链接中,两个参数以下:
driverName := "mysql"
dataSrouceName := "用户名:密码@/数据库名称?charset=utf8"复制代码
另外,须要格外注意一点,须要在使用数据库引擎建立的地方导入对应的数据库引擎驱动,好比本节内容中的mysql数据库,引擎导入语句以下:
_ "github.com/go-sql-driver/mysql"复制代码
设置自动同步结构体到数据库 xorm框架的engine数据库引擎,提供了engine.Sync()方法,容许开发者将自定义的结构体同步到数据库中。 随着xorm框架不断更新和迭代,在Sync方法的基础上,又提供了Sync2方法,用于将结构体同步更新到数据库中。Sync2方法主要的特性是:
自动检测和建立表
自动检测和新增表中的字段名
自动检测建立和删除索引
自动转换varchar字段类型到text字段类型
自动警告字段的默认值
err = engine.Sync2(new(model.Permission), new(model.City), new(model.Admin), new(model.AdminPermission), new(model.User))复制代码
如上是Sync2方法的使用方法
其余设置
是否显示SQL语句(开发调试时使用)
engine.ShowSQL(true)复制代码
设置数据库最大链接数
engine.SetMaxOpenConns(10)复制代码
设置最大空闲链接数量:默认是2
engine.SetMaxIdleConns(5)复制代码
本节课咱们介绍了xorm框架的基本内容和学习文档,以及如何链接mysql数据库,并进行相关设置的内容。下节课咱们将学习xorm框架如何具体实现数据库的操做相关的方法。