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

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关系还是没有建起来。

猜你喜欢

转载自blog.csdn.net/weixin_41571449/article/details/79590536