<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之旅 廣告
                # 對象的 CRUD 操作 如果已知主鍵的值,那么可以使用這些方法進行 CRUD 操作 對 object 操作的四個方法 Read / Insert / Update / Delete ~~~ o := orm.NewOrm() user := new(User) user.Name = "slene" fmt.Println(o.Insert(user)) user.Name = "Your" fmt.Println(o.Update(user)) fmt.Println(o.Read(user)) fmt.Println(o.Delete(user)) ~~~ 如果需要通過條件查詢獲取對象,請參見[高級查詢](http://www.hmoore.net/oldlei/beego/query.md#all) ## Read 只查詢一條數據,如果出現多條數據,只顯示第一條。 1、查詢主鍵id ~~~ o := orm.NewOrm() user := User{Id: 1} err := o.Read(&user) if err == orm.ErrNoRows { fmt.Println("查詢不到") } else if err == orm.ErrMissPK { fmt.Println("找不到主鍵") } else { fmt.Println(user.Id, user.Name) } ~~~ Read 默認通過查詢主鍵賦值,但要查詢其他字段,可以使用指定的字段進行查詢,但必須是結構體上的字段名稱 :如Name ~~~ o := orm.NewOrm() user := User{Name: "slene"} err = o.Read(&user, "Name") ~~~ 多個條件查詢 ~~~ o := orm.NewOrm() user := User{Name: "slene",Age:20} err = o.Read(&user, "Name","Age") ~~~ ``` o := orm.NewOrm() 對象的其他字段值將會是對應類型的默認值 // 2.定義需要查詢的對象 var user models.User // 3.指定需要查詢的字段 //user.Name = "zq" user.Id = 1 // 4.利用ORM對象查詢指定的對象 // 含義從表中找到name是我們指定name的那一條數據, 然后賦值給傳入的user變量 // 第二個參數就相當于過去的where name=user.Name //if err := o.Read(&user, "name"); err ==nil{ //if err := o.Read(&user, "id"); err ==nil{ // 注意點: 如果查詢的條件字段是ID, 那么可以省略 if err := o.Read(&user); err ==nil{ beego.Info("查詢成功", user) }else{ beego.Error("查詢失敗", err) } ``` ``` ~~~ o := orm.NewOrm() qs:=QueryTable("user") var users [ ]models.User _,err:=qs.All(&user) return users ~~~ ``` 復雜的單個對象查詢參見[One](http://www.hmoore.net/oldlei/beego/query.md#one) ## ReadOrCreate 嘗試從數據庫讀取,不存在的話就創建一個 默認必須傳入一個參數作為條件字段,同時也支持多個參數多個條件字段 ~~~ o := orm.NewOrm() user := User{Name: "slene"} // 三個返回參數依次為:是否新創建的,對象 Id 值,錯誤 if created, id, err := o.ReadOrCreate(&user, "Name"); err == nil { if created { fmt.Println("New Insert an object. Id:", id) } else { fmt.Println("Get an object. Id:", id) } } ~~~ ## Insert 第一個返回值為自增健 Id 的值 ~~~ o := orm.NewOrm() var user User user.Name = "slene" user.IsActive = true id, err := o.Insert(&user) if err == nil { fmt.Println(id) } ~~~ ``` // 1.獲取ORM對象 o := orm.NewOrm() // 2.創建需要插入的對象 var user models.User user.Name="zq" user.PassWorld="987654" // 3.通過ORM對象將創建的對象插入到數據庫當中 if id, err := o.Insert(&user); err == nil{ beego.Info("插入數據成功, id是", id) }else{ beego.Error("插入數據失敗", err) } ``` 創建后會自動對 auto 的 field 賦值 ## InsertMulti 同時插入多條數據,最多100條,結構體+切片或數組 類似sql語句 ~~~ insert into table (name, age) values("slene", 28),("astaxie", 30),("unknown", 20) ~~~ 第一個參數 bulk 為并列插入的數量,第二個為對象的slice 返回值為成功插入的數量 ~~~ users := []User{ {Name: "slene"}, {Name: "astaxie"}, {Name: "unknown"}, ... } successNums, err := o.InsertMulti(100, users) ~~~ 返回插入成功條數及錯誤信息。 bulk 為 1 時,將會順序插入 slice 中的數據 ## Update 第一個返回值為影響的行數 ~~~ o := orm.NewOrm() user := User{Id: 1} if o.Read(&user) == nil { user.Name = "MyName" if num, err := o.Update(&user); err == nil { fmt.Println(num) } } ~~~ Update 默認更新所有的字段,可以更新指定的字段: ~~~ // 只更新 Name o.Update(&user, "Name") // 指定多個字段 // o.Update(&user, "Field1", "Field2", ...) ... ~~~ ``` // 1.定義需要更新的對象 var user models.User // 2.指定需要查詢的字段 // 為了避免出錯, 一般情況下更新之前需要先判斷數據是否存在 user.Name = "lnj" // 注意點: 如果查詢的條件字段是ID, 那么可以省略 if err := o.Read(&user, "name"); err ==nil{ beego.Info("查詢成功", user) // 3.設置需要更新的數據 user.Name="it666" user.PassWorld="abcdefg" count, \_ :=o.Update(&user) beego.Info("count====", count) }else{ beego.Error("查詢失敗", err) } ``` 根據復雜條件更新字段值參見[Update](http://www.hmoore.net/oldlei/beego/query.md#update) ## Delete 第一個返回值為影響的行數 ~~~ o := orm.NewOrm() if num, err := o.Delete(&User{Id: 1}); err == nil { fmt.Println(num) } ~~~ ``` // 1.定義需要刪除的對象 var user models.User // 2.指定需要查詢的字段 // 為了避免出錯, 一般情況下更新之前需要先判斷數據是否存在 user.Name = "zq" // 注意點: 如果查詢的條件字段是ID, 那么可以省略 if err := o.Read(&user, "name"); err ==nil{ beego.Info("查詢成功", user) // 3.刪除指定的對象 count, \_ :=o.Delete(&user) beego.Info("count====", count) }else{ beego.Error("查詢失敗", err) } ``` Delete 操作會對反向關系進行操作,此例中 Post 擁有一個到 User 的外鍵。刪除 User 的時候。如果 on\_delete 設置為默認的級聯操作,將刪除對應的 Post **Changed in 1.0.3**刪除以后不會刪除 auto field 的值 ``` //1.有ORM對象 o := orm.NewOrm() //2.有一個要插入數據的結構體對象 user := models.User{} //3.對結構體對象賦值 user.Name = "111" user.Pwd = "222" //4.插入 _,err := o.Insert(&user) if err!= nil { beego.Info("插入失敗",err) return } ``` ``` /1.有ORM對象 o := orm.NewOrm() //2.查詢的對象 user := models.User{} //3.指定查詢對象字段值 user.Name = "111" user.Id = 3 //4.查詢-只有Id是參數可以省略 //err := o.Read(&user) err := o.Read(&user, "Name", "Id") if err != nil { beego.Info("查詢失敗", err) return } ``` ``` ///1.有ORM對象 o := orm.NewOrm() //2.查詢要更新的結構體對象 user := models.User{} //3.查詢需要更新的數據 user.Id = 1 err := o.Read(&user) //4.給數據重新賦值 if err == nil { user.Name = "999" //5.更新 num, err := o.Update(&user) if err != nil { beego.Info("更新失敗", err) return } beego.Info("更新成功,一共更新了:", num, "條") } ``` ``` //1.有orm對象 o := orm.NewOrm() //2.刪除的對象 user := models.User{} //3.指定那一條對象刪除 //user.Id = 2 //num, err := o.Delete(&user) //條件只有Id的話,不用加參數 user.Pwd = "222" //4.刪除 num, err := o.Delete(&user, "Pwd") if err != nil { beego.Info("刪除失敗", err) return } beego.Info("刪除成功,一共刪除了:", num, "條") ```
                  <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>

                              哎呀哎呀视频在线观看