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处理数据结构的时候遵循的是首字母规则和驼峰规则,即将数据库中
这样数据结构就能顺利mapping
网上也有些同学说可以用
获取方式:
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关系还是没有建起来。
相关文章推荐
- sublime 使用中一些遇到问题解决方法和技巧汇总(持续更新)
- Linux的一些使用技巧
- SimpleDateFormt 使用中遇到的一个小问题
- 遇到一个很难说话的人,要求在网页上点一下文字,变成另外一些文字,下面是简单的实现
- 在使用BizTalk时遇到一个很郁闷的问题 之解决篇
- 使用Oracle数据库开发中的一个技巧
- RTF域在b/s下的一些使用技巧
- FTP命令行的一些使用技巧
- “针式背单词”的一些使用技巧
- Castle ActiveRecord学习实践(9):使用ActiveRecord的一些技巧
- 一个简单的动态编译器,支持C#和VB.NET。当你想测试一些简单的代码的时候可以使用。
- javascript的一些使用技巧
- 基于myFaces的JSF技术使用中的一些经验(三)[godroad原创]--使用myFaces的建立一个xml文件的树形表示
- 一个批处理文件的使用技巧
- Jasperreport的一些使用技巧
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- 使用css expression遇到的一个问题
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- “针式背单词”的一些使用技巧
- 使用OWC的一个技巧