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

相關文章
相關標籤/搜索