對beego的Orm的Read函數的理解

在官方文檔上beego的Read函數

o := orm.NewOrm() //第一步,新建orm對象
user := User{Id: 1} //新建model對象,並初始化。默認你初始化主鍵

//orm的read函數默認是用主鍵進行查詢的,
//所以如果不指定字段,就一定要在初始化Model的時候要設置主鍵的值
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 默認通過查詢主鍵賦值,可以使用指定的字段進行查詢:
//在指定字段的時候依然要給model賦值,賦值字段就是要查詢的字段的值,
//然後指定要查詢的字段,根據指定的字段查詢和指定字段的值,查詢出與model指定字段相匹配的數據庫model
//第一個參數是已經用所要查詢字段的值初始化過後的對象
//第二個參數指定查詢的字段,(注意是查詢的字段不是查詢字段的值,
//因此新建一個model對象之後一定要用所要查詢字段的值初始化所要查詢的字段)
user := User{Name: "slene"}
err = o.Read(&user, "Name")
...


可以看出,Read函數輸入的是structstruct的某一或多個字段,輸出錯誤信息(若沒有錯誤則輸出爲空)。 
但是,如果查詢到數據庫中有Id=1的值,則把其整體賦值給user,例如: 
若數據庫中有{'1', '學院概況', '0', '2,3,4,5,6,7', '1', '學院概況'}的一列,則Read成功後user={'1', '學院概況', '0', '2,3,4,5,6,7', '1', '學院概況'},而不是其剛剛創建時的user={'1'}
 

注意:

第一點:
orm的read函數默認是用主鍵進行查詢的,
所以如果不指定字段,就一定要在初始化Model的時候要設置主鍵的值

第二點:
Read 默認通過查詢主鍵賦值,也可以使用指定的字段進行查詢。
在指定字段的時候依然要給model賦值,賦值字段就是要查詢的字段的值,然後指定要查詢的字段,根據指定的字段查詢和指定字段的值,查詢出與model指定字段相匹配的數據庫model
第一個參數是已經用所要查詢字段的值初始化過後的對象
第二個參數指定查詢的字段,(注意是查詢的字段不是查詢字段的值,
因此在指定一個查詢字段時,新建一個model對象之後仍然要用所要查詢字段的值初始化所要查詢的字段)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章