go培訓課程都學什麼?go語言框架學習:xorm框架知識介紹

qfDavie發表於2019-04-02

xorm框架介紹

xorm是一個簡單而強大的Go語言ORM庫. 通過它可以使資料庫操作非常簡便。 通過xorm框架,開發者可以方便的使用各種封裝好的方法來代替原生的sql語句。這樣就降低了我們開發者使用資料庫的門檻。本節內容,我們將通過xorm相關知識的學習,來逐步掌握在程式碼中如何運算元據庫。 讀者也可以通過相關的學習文件進行xorm框架的學習,如下是xorm框架相關的學習文件:

支援資料庫驅動列表

同其他物件關係對映框架一樣,xorm也支援連線、操作多種資料庫,包括:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle(測試)。具體的每一種資料庫型別的驅動安裝如下:

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框架如何具體實現資料庫的操作相關的方法。


相關文章