golang orm之gorose 2.0版本正式发布

fizzday · · 989 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

## 关于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 ```go db.Table().Data().Insert() db.Insert(&Binder) ``` - delete ```go db.Table().Where().Delete() ``` - update ```go db.Table().Where().Update() db.Where().Update(&Binder) db.Increment() db.Decrement() ``` - select ```go 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. 架构示意图 ![](https://i.loli.net/2019/06/19/5d0a1273f12ef86624.jpg) ### 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](https://www.kancloud.cn/fizz/gorose-2/1135835) [gay hub地址: https://github.com/gohouse/gorose](https://github.com/gohouse/gorose) [点击加入qq交流群: 470809220](https://jq.qq.com/?_wv=1027&k=5JJOG9E)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

989 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传