xorm框架介紹
xorm是一個簡單而強大的Go語言ORM庫. 通過它可以使數據庫操作非常簡便。 通過xorm框架,開發者可以方便的使用各種封裝好的方法來代替原生的sql語句。這樣就降低了我們開發者使用數據庫的門檻。本節內容,我們將通過xorm相關知識的學習,來逐步掌握在代碼中如何操作數據庫。 讀者也可以通過相關的學習文檔進行xorm框架的學習,如下是xorm框架相關的學習文檔:
-
xorm的Github倉庫地址:https://github.com/go-xorm/xorm
-
xorm說明文檔地址:http://xorm.io/docs
支持數據庫驅動列表
同其他對象關系映射框架一樣,xorm也支持連接、操作多種數據庫,包括:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle(測試)。具體的每一種數據庫類型的驅動安裝如下:
-
MyMysql: github.com/ziutek/mymysql/godrv
-
Postgres: github.com/lib/pq
-
Tidb: github.com/pingcap/tidb
-
SQLite: github.com/mattn/go-sqlite3
-
MsSql: github.com/lunny/godbc
-
Oracle: github.com/mattn/go-oci8 (試驗性支持)
xorm安裝
go get github.com/go-xorm/xorm
mysql連接示例
本節內容中,我們將以連接mysql為案例,演示xorm的相關操作。
-
創建引擎
engine, err := xorm.NewEngine(driverName, dataSourceName)
如上通過xorm.NewEngine方法創建一個數據庫操作引擎,該方法需要兩個參數:driveName和dataSourceName。在mysql引擎連接中,兩個參數如下:
driverName := "mysql" dataSrouceName := "用戶名:密碼@/數據庫名稱?charset=utf8"
另外,需要格外注意一點,需要在使用數據庫引擎創建的地方導入對應的數據庫引擎驅動,比如本節內容中的mysql數據庫,引擎導入語句如下:
_ "github.com/go-sql-driver/mysql"
mysql連接配置
-
設置自動同步結構體到數據庫 xorm框架的engine數據庫引擎,提供了engine.Sync()方法,允許開發者將自定義的結構體同步到數據庫中。 隨着xorm框架不斷更新和迭代,在Sync方法的基礎上,又提供了Sync2方法,用於將結構體同步更新到數據庫中。Sync2方法主要的特性是:
-
自動檢測和創建表
-
自動檢測和新增表中的字段名
-
自動檢測創建和刪除索引
-
自動轉換varchar字段類型到text字段類型
-
自動警告字段的默認值
err = engine.Sync2(new(model.Permission), new(model.City), new(model.Admin), new(model.AdminPermission), new(model.User))
如上是Sync2方法的使用方法
-
-
其他設置
-
是否顯示SQL語句(開發調試時使用)
engine.ShowSQL(true)
-
設置數據庫最大連接數
engine.SetMaxOpenConns(10)
-
設置最大空閑連接數量:默認是2
engine.SetMaxIdleConns(5)
本節課我們介紹了xorm框架的基本內容和學習文檔,以及如何連接mysql數據庫,並進行相關設置的內容。下節課我們將學習xorm框架如何具體實現數據庫的操作相關的方法。
-
