<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 創建Orm引擎 在xorm里面,可以同時存在多個Orm引擎,一個Orm引擎稱為Engine,一個Engine一般只對應一個數據庫。Engine通過調用xorm.NewEngine生成,如: ~~~ import ( _ "github.com/go-sql-driver/mysql" "github.com/xormplus/xorm" ) var engine *xorm.Engine func main() { var err error engine, err = xorm.NewEngine("mysql", "root:123@/test?charset=utf8") } ~~~ or ~~~ import ( _ "github.com/mattn/go-sqlite3" "github.com/xormplus/xorm" ) var engine *xorm.Engine func main() { var err error engine, err = xorm.NewEngine("sqlite3", "./test.db") } ~~~ 您也可以針對特定數據庫及數據庫驅動使用類似下面的快捷方式創建引擎 ~~~ engine, err = xorm.NewPostgreSQL(dataSourceName) engine, err = xorm.NewSqlite3(dataSourceName) ~~~ 一般情況下如果只操作一個數據庫,只需要創建一個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來手動關閉,但是一般情況下可以不用關閉,在程序退出時會自動關閉。 NewEngine傳入的參數和sql.Open傳入的參數完全相同,因此,在使用某個驅動前,請查看此驅動中關于傳入參數的說明文檔。以下為各個驅動的連接符對應的文檔鏈接: * [sqlite3](http://godoc.org/github.com/mattn/go-sqlite3#SQLiteDriver.Open) * [mysql dsn](https://github.com/go-sql-driver/mysql#dsn-data-source-name) * [mymysql](http://godoc.org/github.com/ziutek/mymysql/godrv#Driver.Open) * [postgres](http://godoc.org/github.com/lib/pq) 在engine創建完成后可以進行一些設置,如: ## 日志 日志是一個接口,通過設置日志,可以顯示SQL,警告以及錯誤等,默認的顯示級別為INFO。 * engine.ShowSQL(true),則會在控制臺打印出生成的SQL語句; * engine.Logger().SetLevel(core.LOG_DEBUG),則會在控制臺打印調試及以上的信息; 如果希望將信息不僅打印到控制臺,而是保存為文件,那么可以通過類似如下的代碼實現,NewSimpleLogger(w io.Writer)接收一個io.Writer接口來將數據寫入到對應的設施中。 ~~~ f, err := os.Create("sql.log") if err != nil { println(err.Error()) return } engine.SetLogger(xorm.NewSimpleLogger(f)) ~~~ 當然,如果希望將日志記錄到syslog中,也可以如下: ~~~ logWriter, err := syslog.New(syslog.LOG_DEBUG, "rest-xorm-example") if err != nil { log.Fatalf("Fail to create xorm system logger: %v\n", err) } logger := xorm.NewSimpleLogger(logWriter) logger.ShowSQL(true) engine.SetLogger(logger) ~~~ ## 連接池 engine內部支持連接池接口和對應的函數。 * 如果需要設置連接池的空閑數大小,可以使用engine.SetMaxIdleConns()來實現。 * 如果需要設置最大打開連接數,則可以使用engine.SetMaxOpenConns()來實現。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看