<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 用法示例 ### 簡單配置 ```go // DB Config.(Recommend to use configuration file to import) var DbConfig = &gorose.DbConfigSingle { Driver: "mysql", // 驅動: mysql/sqlite/oracle/mssql/postgres EnableQueryLog: false, // 是否開啟sql日志 SetMaxOpenConns: 0, // (連接池)最大打開的連接數,默認值為0表示不限制 SetMaxIdleConns: 0, // (連接池)閑置的連接數 Prefix: "", // 表前綴 Dsn: "root:root@tcp(localhost:3306)/test?charset=utf8", // 數據庫鏈接 } ``` ### 導入對應的驅動, 如 MySQL驅動: ```go _ "github.com/gohouse/gorose/driver/mysql" // or import _ "github.com/go-sql-driver/mysql" ``` ### 鏈接數據庫 ```go connection, err := gorose.Open(DbConfig) ``` 這里使用golang原生配置作為示例, 同時支持配置文件, 示例: ```go // fileOrDriverType 文件類型/驅動類型,如: json/mysql // filePathOrDsn 文件路徑,如: (/path/to/fileName.json)/(dsn...) connection, err := gorose.Open(fileOrDriverType, filePathOrDsn string) ``` 我們看下 Open() 的 api: ``` func Open(args ...interface{}) (*Connection, error) ``` 可以接收可變參數, 一個或者兩個參數. 一個時只能是原生golang的類型 `type DbConfigSingle`(單一配置) 或 `type DbConfigCluster`(讀寫分離配置) ```go gorose.Open(gorose.DbConfigSingle{...}) gorose.Open(gorose.DbConfigCluster{...}) ``` 兩個參數時: 則是文件解析器, 或者直接傳入dsn,如: ```go gorose.Open("mysql", "root:root@tcp(localhost:3306)/test?charset=utf8") gorose.Open("json", "/path/to/fileName.json") ``` ----- 具體json文件示例, 請參考第2節 - 配置 理論上可以接收任何文件類型的配置, 只需要添加對應文件類型的解析器即可. 幸運的是, 我們可以輕松擴展文件解析器, 具體擴展方法, 我們可以查看第9節, 擴展開發. ### 使用鏈接對象做查詢操作示例 1. 鏈接數據庫 ``` conn,err := gorose.Open("mysql", "root:root@tcp(localhost:3306)/test?charset=utf8") if err!=nil { log.Fatal(err) return } ``` 2. 直接查詢 ``` res,err := conn.Query("select * from user") ``` 或者 使用會話內查詢 ``` res,err := conn.NewSession().Query("select * from user") ``` 3. 會話內, 復用條件查詢 ``` var session *gorose.Session session = gorose.NewSession() session.table("user") session.Where("id",">",1) session.Where("age","<", 20) res,err := session.Order("age asc, id desc").Limit(10).Get() ``` 4. 特別提示 注意上述的會話操作 `NewSession()`, 這里的 `NewSession()`是新建一個隔離的會話, 會話內的參數和上下文數據共享, 方便在不同地方來構建一個完整的orm操作 gorose的隔離原理是, 新建連接池, 保持連接池持久化, 每一次操作, 都是從連接池申請一個鏈接. 所以, 我們能夠全局復用的是 `gorose.Connection` 連接池; 一個會話周期內能夠復用的是 `gorose.Session` 我們使用的時候要注意這里的差別, 避免上下文和參數感染
                  <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>

                              哎呀哎呀视频在线观看