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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] > 數據表中字段是不區分大小寫的 ## model 操作 ``` type HsDept struct { DEPT_ROOT_ID string `orm:"pk"` } orm.RegisterDriver("mysql", orm.DRMySQL) orm.RegisterDataBase("default", "mysql", "root:www.upsoft01.com@tcp(192.168.0.71:3306)/antdbms_test2?charset=utf8", 60) //需要添加這一步才能查找對應的數據表,不然會報錯,找不到改表 orm.RegisterModel(new(HsDept)) ``` ## 在程序中直接調用自動建表 ``` // 數據庫別名 name := "default" // drop table 后再建表 force := true // 打印執行過程 verbose := true // 遇到錯誤立即返回 err := orm.RunSyncdb(name, force, verbose) if err != nil { fmt.Println(err) } ``` ## row 的返回值 [推薦] `QueryRow` 或者`QueryRows` ``` type User struct { Id int UserName string } var user User err := o.Raw("SELECT id, user_name FROM user WHERE id = ?", 1).QueryRow(&user) ``` ## row 的返回值 [不推薦] 1. Values 返回帶自帶名的 數組 ``` var param []orm.Params _, e := o.Raw("sql 語句").Values(&param) beego.Debug(param) // [map[order_id:1 dept_id:1 dept_parent_id: name:指揮導控系統]] ``` 2. ValuesList 返回不帶字段名的數組 ``` var param []orm.ParamsList _, e := o.Raw("sql 語句").ValuesList(&param) beego.Debug(param) //[[1 指揮導控系統 1]] ``` 3. ValuesFlat ``` var param orm.ParamsList _, e := o.Raw("sql 語句").ValuesFlat(&param) beego.Debug(param) // [1 指揮導控系統 1] ``` ## 數據庫操作 ## CRUD 查詢 ### 查 單條查詢 ``` //查默認通過主鍵 user := HsUser{UserId: 146} err := o.Read(&user) fmt.Println(user) //指定查詢條件 user := HsUser{UserName: "aaa", UserLogin: "aaa1"} err := o.Read(&user, "user_name", "user_login") //第二參數開始為條件 fmt.Println(user) //高級查詢 var post Post //QueryTable(new(post)) 也支持此類寫法 o.QueryTable("post").Filter("Content__istartswith", "prefix string").One(&post, "Id", "Title") ``` 多條查詢 ``` // 只返回 Id 和 Title var posts []Post //QueryTable(new(post)) 也支持此類寫法 o.QueryTable("post").Filter("Status", 1).All(&posts, "Id", "Title") ``` ### 增 1. 單個更新 ``` user.Name = "slene" user.IsActive = true id, err := o.Insert(&user) ``` 2. 多個更新 ``` users := []User{ {Name: "slene"}, {Name: "astaxie"}, {Name: "unknown"}, ... } //第一個參數 bulk 為并列插入的數量,第二個為對象的slice //bulk 為 1 時,將會順序插入 slice 中的數據 successNums, err := o.InsertMulti(100, users) ``` ### 更新 ``` //1. 更新所有字段 user.UserName="update_pvj1" i, err := o.Update(&user) //2.更新指定字段 user.UserName="update_pvj1" Update(&user,"user_name",...) ``` ## 刪除 ```go o.Delete(&User{Id: 1}) ``` ## 高級查詢 ```go // 獲取 QuerySeter 對象,user 為表名 qs := o.QueryTable("user") // 也可以直接使用對象作為表名 user := new(User) qs = o.QueryTable(user) // 返回 QuerySeter ``` ## 關系性數據庫需要注意
                  <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>

                              哎呀哎呀视频在线观看