golang-orm之gorose-20版本正式发布

8次阅读

共计 1173 个字符,预计需要花费 3 分钟才能阅读完成。

关于 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

正文完
 0