首先说明的是,在项目中使用orm的好处很多:
- 防止直接拼接sql语句引入sql注入漏洞
- 方便对modle进行统一管理
- 专注业务,加速开发
坏处也是显而易见的:
- 开发者与最终的sql语句隔了一层orm,因此可能会不慎引入烂sql
- 依赖于orm的成熟度,无法进行一些「复杂」的查询。当然,复杂的查询一大半都是应该从设计上规避的
留意不合法的时间值
MySQL的DATE/DATATIME
类型可以对应Golang的time.Time
。但是,如果DATE/DATATIME
不慎插入了一个无效值,例如2016-00-00 00:00:00, 那么这条记录是无法查询出来的。会返回gorm.RecordNotFound
类型错误。零值0000-00-00 00:00:00是有效值,不影响正常查询。
留意tagsql:"default:null"
gorm对各种tag的支持非常完善。但是有些行为跟直觉不太一致,需要注意。当对某字段设置tagsql:"default:null"
时,你想通过update
设置该字段为null
就不可能了,只能通过raw sql
。这是gorm设计的取向问题。
如何通过gorm设置字段为null值
字段允许为null
值肯定是设计存在问题。但是,往往前人埋下的坑需要你去填。gorm作者给出了两种方法,以string
为例:
在golang中,声明该字段为*string
使用sql.NullString
类型
推荐使用后者。
留意连接串中的loc
例如通过如下连接串打开mysql连接:
复制代码 代码如下:
db, err := gorm.Open("mysql", "db:dbadmin@tcp(127.0.0.1:3306)/foo")
parseTime=true&loc=Local
说明会解析时间,时区是机器的local时区。机器之间的时区可能不一致会设置有问题,这导致从相同库的不同实例查询出来的结果可能解析以后就不一样。因此推荐将loc统一设置为一个时区,如parseTime=true&loc=America%2FChicago
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
go,gorm,gorm,使用
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 区瑞强-黄金时代HQCDII头版限量wav
- 孙露《终于等到你》[WAV分轨][488M]
- 张信哲《歌时代》 潮水音乐 [WAV+CUE]
- 妙音唱片《绝对发烧24》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]
- 鲍翠薇.1995-鲍翠薇精选CD01【娱乐唱片】【WAV+CUE】
- 群星.2024-人民警察电视剧原声专辑【奔跑怪物】【FLAC分轨】
- 汪佩蓉.2001-ITS.YOU【滚石】【WAV+CUE】
- 群星《粤烧越经典》HIFI老歌[低速原抓WAV+CUE][1.1G]
- 谭艳《听爱DSD》[WAV+CUE][582M]
- 群星 《2024好听新歌34》十倍音质 U盘音乐[WAV分轨][1.1G]
- lol全球总决赛最新汇总 英雄联盟s14全球总决赛详细介绍
- 英雄联盟s14世界赛半决赛结果是什么 s14总决赛半决赛结果一览
- 魔兽世界奥卡兹岛地牢入口在哪里 奥卡兹岛地牢入口位置一览
- 和文军-丽江礼物[2007]FLAC
- 陈随意2012-今生的伴[豪记][WAV+CUE]