• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zhuzhiqiang
V2EX  ›  程序员

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

  •  
  •   zhuzhiqiang ·
    zhuzhiqiang18 · Aug 14, 2019 · 3884 views
    This topic created in 2496 days ago, the information mentioned may be changed or developed.
    GO 没有 null,初始值都会给一个零值, 数据库中有 null 值该怎么处理? 一般情况怎么处理呢? 我现在封装的 orm 都是给了一个零值( int = 0 string =“” Time = time.Time{}) 约定大于配置?
    轮子 https://github.com/zhuzhiqiang18/go_web_curd
    12 replies    2019-08-15 13:35:32 +08:00
    SuperMild
        1
    SuperMild  
       Aug 14, 2019
    自己做轮子?可以参考 gorm 之类的是怎么做的。
    iuoui
        2
    iuoui  
       Aug 14, 2019   ❤️ 1
    时间 mysql.NullTime
    其他类型 sql.NullInt64 sql.NullString 等等
    另外推荐一个库,github.com/guregu/null
    这个库做了 json 处理,比较方便
    zhuzhiqiang
        3
    zhuzhiqiang  
    OP
       Aug 14, 2019
    @SuperMild 刚刚知道了这个框架 谢大佬
    zhuzhiqiang
        4
    zhuzhiqiang  
    OP
       Aug 14, 2019
    @iuoui 那这样的话 结构体的字段 就不能用基本类型了吧
    StarkWhite
        5
    StarkWhite  
       Aug 14, 2019
    Go 没有 null,但有 nil 啊
    B3C933r4qRb1HyrL
        6
    B3C933r4qRb1HyrL  
       Aug 14, 2019
    @zhuzhiqiang 可以参考下 gorm 的处理。gorm 里字段定义成指针类型的话,是可以在 mysql 中设置为 null 的
    fuckshit
        7
    fuckshit  
       Aug 14, 2019
    为什么要自己造轮子呢? gorm 不好用吗
    zhuzhiqiang
        8
    zhuzhiqiang  
    OP
       Aug 14, 2019
    @fuckshit 我上周刚接触 GO 看到数据库部分 就顺手封装了 也是才知道这个框架 [逃跑]
    zhuzhiqiang
        9
    zhuzhiqiang  
    OP
       Aug 14, 2019
    @cuvii 好的 谢大佬
    mlboy
        10
    mlboy  
       Aug 15, 2019 via iPhone
    开源吗
    fuckshit
        11
    fuckshit  
       Aug 15, 2019
    @zhuzhiqiang gorm xorm 都是挺好的 golang orm 框架, 但是我还是比较喜欢 gorm。
    reus
        12
    reus  
       Aug 15, 2019
    用指针
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 03:09 · PVG 11:09 · LAX 20:09 · JFK 23:09
    ♥ Do have faith in what you're doing.