golang orm之gorose 2.0版本正式发布 - Go语言中文社区

golang orm之gorose 2.0版本正式发布


关于gorose 2.0

gorose, 最风骚的golang orm, php版本的laravel eloquent.
经过几个月的重构和打磨, 再加上近一个月的预览版测试和改进, gorose 2.0正式版终于与我们见面了.
新版本做出了重大改动和升级, 完全重构了基础架构和实现方式, 下面, 我们一起来看看gorose 2.0的特点吧

gorose 2.0特点

1. 全新架构

gorose 2.0 采用模块化分离架构, 主要分为4大模块:

  • engin: 初始化gorose和数据库链接,配置解析,连接池启用
  • session: 数据库操作,事务操作等,采用会话隔离,确保每一个连接和数据库操作都是相互独立的, 充分利用连接池来提升数据库效率
  • orm: 通过优雅的api来实现对象关系映射,使操作数据库更加方便快捷
  • builder: 不同数据库驱动来解析orm对象关系, 从而生成符合database/sql标准的最终执行sql语句,可以自由扩展比国内支持更多不同的数据库驱动

各个模块相对独立, 通过接口的方式对外提供服务, 如果你愿意, 可以替换掉任意一个模块, 只需要实现对应模块的interface接口即可

2. 更强大的读写分离

支持多主多从数据库的读写分离

3. 更加友好的orm api

  • insert
db.Table().Data().Insert()
db.Insert(&Binder)
  • delete
db.Table().Where().Delete()
  • update
db.Table().Where().Update()
db.Where().Update(&Binder)
db.Increment()
db.Decrement()
  • select
db.Table(&Binder).Distinct().Fields().Where().Group().Having().Order().Limit().Offset().Select()
db.Table().First()
db.Table().Get()
db.Count()
db.Sum()
db.Avg()
db.Max()
db.Min()
db.SharedLock()
db.LockForUpdate()

4. 架构示意图

5. 支持多个数据库驱动

  • mysql
  • sqlite3
  • postgres
  • oracle
  • mssql
  • clickhouse

温馨提示: 只要符合database/sql接口标准的数据库驱动, 都可以引入gorose使用

5. 自由选择返回数据类型

查询返回, 可以自由指定绑定struct.
或者无须定义任何类型, 直接返回map

gorose 2.0 文档

gorose 2.0文档: https://www.kancloud.cn/fizz/gorose-2/1135835

gay hub地址: https://github.com/gohouse/gorose

点击加入qq交流群: 470809220

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/fizzcome/article/details/98038469
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 12:07:11
  • 阅读 ( 1807 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢