xorm框架介紹
xorm是一個簡單而強大的Go語言ORM庫. 通過它可以使資料庫操作非常簡便。 通過xorm框架,開發者可以方便的使用各種封裝好的方法來代替原生的sql語句。這樣就降低了我們開發者使用資料庫的門檻。本節內容,我們將通過xorm相關知識的學習,來逐步掌握在程式碼中如何運算元據庫。 讀者也可以通過相關的學習文件進行xorm框架的學習,如下是xorm框架相關的學習文件:
xorm的Github倉庫地址:github.com/go-xorm/xor…
xorm說明文件地址:xorm.io/docs
支援資料庫驅動列表
同其他物件關係對映框架一樣,xorm也支援連線、操作多種資料庫,包括:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle(測試)。具體的每一種資料庫型別的驅動安裝如下:
MyMysql: github.com/ziutek/mymy…
Postgres: github.com/lib/pq
Tidb: github.com/pingcap/tid…
SQLite: github.com/mattn/go-sq…
MsSql: github.com/denisenkom/…
MsSql: github.com/lunny/godbc
Oracle: github.com/mattn/go-oc… (試驗性支援)
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框架如何具體實現資料庫的操作相關的方法。