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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章