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

24 篇文章 0 订阅
4 篇文章 0 订阅

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值