mysql連線 xorm 建立Orm引擎

2021-10-17 01:25:07 字數 1773 閱讀 6935

### 建立orm引擎

在xorm裡面,可以同時存在多個orm引擎,乙個orm引擎稱為engine,乙個engine一般只對應乙個資料庫。engine通過呼叫`xorm.newengine`生成,如:

一般情況下如果只操作乙個資料庫,只需要建立乙個`engine`即可。`engine`是gorutine安全的。

建立完成`engine`之後,並沒有立即連線資料庫,此時可以通過`engine.ping()`來進行資料庫的連線測試是否可以連線到資料庫。另外對於某些資料庫有連線超時設定的,可以通過起乙個定期ping的go程來保持連線鮮活。

對於有大量資料並且需要分割槽的應用,也可以根據規則來建立多個engine,比如:

var err error

for i:=0;i<5;i++ {

engines[i], err = xorm.newengine("sqlite3", fmt.sprintf("./test%d.db", i))

engine可以通過engine.close來手動關閉,但是一般情況下可以不用關閉,在程式退出時會自動關閉。

[sqlite3](

[mysql dsn](

[mymysql](

[postgres](

在engine建立完成後可以進行一些設定,如:

1.除錯,警告以及錯誤等顯示設定,預設如下均為`false`

- `engine.showsql = true`,則會在控制台列印出生成的sql語句;

- `engine.showdebug = true`,則會在控制台列印除錯資訊;

- `engine.showerror = true`,則會在控制台列印錯誤資訊;

- `engine.showwarn = true`,則會在控制台列印警告資訊;

2.如果希望將資訊不僅列印到控制台,而是儲存為檔案,那麼可以通過類似如下的**實現,`new******logger(w io.writer)`接收乙個io.writer介面來將資料寫入到對應的設施中。

f, err := os.create("sql.log")

if err != nil {

println(err.error())

return

defer f.close()

engine.logger = xorm.new******logger(f)

3.engine內部支援連線池介面和對應的函式。

- 如果需要設定連線池的空閒數大小,可以使用`engine.setmaxidleconns()`來實現。

- 如果需要設定最大開啟連線數,則可以使用`engine.setmaxopenconns()`來實現。

xorm例項 建立xorm,對映 j x x

xorm例項 建立xorm,對映職責 結構體名稱 表名 結構體field 表字段的名稱 由core.imapper介面的實現者來管理,xorm內建了三種imapper實現 core.snakemapper 支援struct為駝峰式命名,表結構為下劃線命名之間的轉換 core.samemapper 支...

xorm (一)建立引擎,實現簡單的查詢

1 建立引擎,鏈結資料庫,設定debug啟動方式。連線到資料庫 func newengin xorm.engine debug模式,列印全部的sql語句,幫助對比,看orm與sql執行的對照關係 engine.showsql true return engine 2 配置config檔案,一般將驅動...

SQLSERVER建立MYSQL連線伺服器

1.在sql server端安裝mysql的odbc驅動 2.在odbc資料來源新增mysql 控制面板 所有控制面板項 管理工具 在使用者dsn 和系統dsn新增配置驅動程式 注 字符集一定要和mysql伺服器相對應,如果mysql使用了gbk字符集,則一定要設定字符集為gbk,否則匯入到sql ...