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
相关推荐
技术之博大精深 2020-10-16
jimgreatly 2020-08-03
Lingforme 2020-07-18
chenjiazhu 2020-07-08
Yort 2020-06-28
zry 2020-06-28
技术之博大精深 2020-06-10
Lingforme 2020-06-10
jediaellu 2020-06-02
PengQ 2020-06-01
jediaellu 2020-05-31
Danialzhou 2020-05-30
shawroad 2020-05-30
tlsmile 2020-05-28
jediaellu 2020-05-28