您的位置:首页 > 编程语言 > Go语言

gorm的一些使用技巧和遇到的一个坑

2018-03-17 11:42 183 查看
gorm是国内开发者所做的开源golang orm框架,做的比较成熟。

获取方式:

go get -u github.com/jinzhu/gorm

使用方法查看文档即可,还是比较符合sql语句的写法和设计方式的,当然也支持Raw语句,自己拼出语句去执行。

一个小技巧:

查看执行的sql语句,拼了大段的where,find以后想看事实执行的sql是什么,毕竟是开源框架,打出来看看避免自己的不科学使用导致库被拖挂还是很重要的。。

// 启用Logger,显示详细日志

db.LogMode(true)

// 禁用日志记录器,不显示任何日志

db.LogMode(false)

// 调试单个操作,显示此操作的详细日志

db.Debug().Where(“name = ?”, “jinzhu”).First(&User{})

这样就可以将实际执行的sql打印出来

一个坑

gorm处理数据结构的时候遵循的是首字母规则和驼峰规则,即将数据库中
a_b_c_d
这种字段转换ABCD,定义数据结构的如果符合这种结构就可以自动mapping。但是如果表的列是大写,比如
key_WJC
这种mapping就不能自动成立,怎么写key名都没用。解决方法是在后面指定列名:

type Text struct {
Id int64
KeyWjc *string `gorm:"column:key_WJC"`
}


这样数据结构就能顺利mapping

网上也有些同学说可以用
gorm:"type:varchar(128)"
这种形式,但是不知道是不是因为我同一表内有多个type是varchar(128)的字段,所以mapping关系还是没有建起来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: