### 建立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 ...