代码拉取完成,页面将自动刷新
udcdb 基于 go-xorm/xorm
封装,将 xorm
实例工厂化,便于接入项目使用。
go get gitee.com/common_go/dbdao
[MysqlConfig]
; 是否打开执行sql记录
showSql=true
; 是否记录sql执行时间,前提需打开showSql
showExecTime=true
; 慢执行日志,前提打开showExecTime,单位500s,默认为0,打全部执行耗时日志
slowslowDuration=500
; 最大连接数,默认100
maxConn=50
; 最大空闲连接数,默认30
maxIdle=30
[MysqlCluster]
; group = 主库 从库1 从库2 ... 从库n
udc = udc_rw:123456@tcp(localhost:3306)/udc_test udc_ro:123456@tcp(localhost:3306)/udc_test
blog = blog_rw:123456@tcp(localhost:3306)/blog_test blog_ro:123456@tcp(localhost:3306)/blog_test
udc
与blog
分别为两组不同的实例; 支持一主多从,配置至少 一主一从。
// 获取 udc 实例组
db := dbdao.GetDbInstance("udc")
// 返回 Master 数据库引擎
masterEngine := db.Engine.Master()
// 依据给定的负载策略返回一个 Slave 数据库引擎
slaveEngine := db.Engine.Slave()
type User struct {
Id int64
Name string
Salt string
Age int
Passwd string `xorm:"varchar(200)"`
Created time.Time `xorm:"created"`
Updated time.Time `xorm:"updated"`
}
// 主库插入
affected, err := masterEngine.Insert(&user)
// INSERT INTO struct () values ()
affected, err := masterEngine.Insert(&user1, &user2)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values ()
affected, err := masterEngine.Insert(&users)
// INSERT INTO struct () values (),(),()
affected, err := masterEngine.Insert(&user1, &users)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values (),(),()
// 从库查询
has, err := slaveEngine.Get(&user)
// SELECT * FROM user LIMIT 1
has, err := slaveEngine.Where("name = ?", name).Desc("id").Get(&user)
// SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1
https://gobook.io/read/gitea.com/xorm/manual-zh-CN/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。