小弟上周接触了 GO 在封装 ORM 过程中 有个疑问 请教大佬

2019-08-14 15:34:16 +08:00
 zhuzhiqiang
GO 没有 null,初始值都会给一个零值, 数据库中有 null 值该怎么处理? 一般情况怎么处理呢? 我现在封装的 orm 都是给了一个零值( int = 0 string =“” Time = time.Time{}) 约定大于配置?
轮子 https://github.com/zhuzhiqiang18/go_web_curd
3113 次点击
所在节点    程序员
12 条回复
SuperMild
2019-08-14 15:36:42 +08:00
自己做轮子?可以参考 gorm 之类的是怎么做的。
iuoui
2019-08-14 15:40:02 +08:00
时间 mysql.NullTime
其他类型 sql.NullInt64 sql.NullString 等等
另外推荐一个库,github.com/guregu/null
这个库做了 json 处理,比较方便
zhuzhiqiang
2019-08-14 15:41:17 +08:00
@SuperMild 刚刚知道了这个框架 谢大佬
zhuzhiqiang
2019-08-14 15:41:40 +08:00
@iuoui 那这样的话 结构体的字段 就不能用基本类型了吧
StarkWhite
2019-08-14 18:34:09 +08:00
Go 没有 null,但有 nil 啊
cuvii
2019-08-14 18:41:06 +08:00
@zhuzhiqiang 可以参考下 gorm 的处理。gorm 里字段定义成指针类型的话,是可以在 mysql 中设置为 null 的
fuckshit
2019-08-14 19:34:06 +08:00
为什么要自己造轮子呢? gorm 不好用吗
zhuzhiqiang
2019-08-14 19:43:50 +08:00
@fuckshit 我上周刚接触 GO 看到数据库部分 就顺手封装了 也是才知道这个框架 [逃跑]
zhuzhiqiang
2019-08-14 19:44:05 +08:00
@cuvii 好的 谢大佬
mlboy
2019-08-15 04:06:23 +08:00
开源吗
fuckshit
2019-08-15 09:41:39 +08:00
@zhuzhiqiang gorm xorm 都是挺好的 golang orm 框架, 但是我还是比较喜欢 gorm。
reus
2019-08-15 13:35:32 +08:00
用指针

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/591843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX