golang orm之gorose 2.0版本正式发布

关于gorose 2.0

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

gorose 2.0特色

1. 全新架构

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

  • engin: 初始化gorose和数据库连接,配置解析,链接池启用
  • session: 数据库操做,事务操做等,采用会话隔离,确保每个链接和数据库操做都是相互独立的, 充分利用链接池来提高数据库效率
  • orm: 经过优雅的api来实现对象关系映射,使操做数据库更加方便快捷
  • builder: 不一样数据库驱动来解析orm对象关系, 从而生成符合database/sql标准的最终执行sql语句,能够自由扩展比国内支持更多不一样的数据库驱动
各个模块相对独立, 经过接口的方式对外提供服务, 若是你愿意, 能够替换掉任意一个模块, 只须要实现对应模块的interface接口便可

2. 更强大的读写分离

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

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.
或者无须定义任何类型, 直接返回mapgit

gorose 2.0 文档

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

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

点击加入qq交流群: 470809220sql

相关文章
相关标签/搜索