golang 如何在service 层面实现事务?

不像java那种有ThreadLocal,自己也没协程local,没办法保存dao层和service共用的connection,不能每次service开启事务都传递个connection到dao层,怎么实现都感觉有些别扭

阅读 7k
2 个回答

写golang的出现dao层,感觉就是Java转过来的。
golang只能通过传参方式传递共用对象。

可以在DAO层接收connection参数

struct UserDao {
    connection *sql.DB
}

func NewUserDao(connection *sql.DB) *UserDao {
    return &UserDao {
        connection: connection,
    }
}

func(p *UserDao) test(){
    p.connection.xxx
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题