V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxCoder
V2EX  ›  问与答

问个关于 golang web 开发的问题

  •  
  •   zxCoder · 2020-10-13 21:56:56 +08:00 · 923 次点击
    这是一个创建于 1492 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚学 golang,也不知道这种写法对不对,还是 java 的那种思想,dao 包里是直接用自带的 sql 包操作数据库的

    所以我的问题是,这几个 dao 操作要怎么写成事务的形式呢?

    伪代码

    func AddNewPost()  {
    	dao.xxx()
        dao.yyy()
        dao.zzz()
    }
    
    6 条回复    2020-10-14 09:52:18 +08:00
    Muninn
        1
    Muninn  
       2020-10-13 22:12:38 +08:00
    需要传进去事务对象 不过一般没人这么写

    找点优秀 golang 项目看看呗。 用一个语言逐行重写另一个语言的代码不是个学习语言的好办法。
    zxCoder
        2
    zxCoder  
    OP
       2020-10-13 22:32:22 +08:00
    @Muninn 有推荐的吗 我目前是用原生的 http/net 写的 直接看大型项目感觉帮助不大
    Muninn
        3
    Muninn  
       2020-10-13 23:29:09 +08:00
    用 gorm 的人多
    FutherAll
        4
    FutherAll  
       2020-10-13 23:35:53 +08:00 via iPhone
    db.begin
    db.commit
    标准库的事务
    或者直接用 gorm/xorm,有一层 func 封装
    zxCoder
        5
    zxCoder  
    OP
       2020-10-14 08:46:54 +08:00
    @FutherAll var DB *sql.DB 这个 DB 对象我写成全局变量的形式,可以吗?
    FutherAll
        6
    FutherAll  
       2020-10-14 09:52:18 +08:00 via iPhone
    @zxCoder 可以,这个 db 代表你和数据库的一个连接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4046 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:14 · PVG 13:14 · LAX 21:14 · JFK 00:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.