在官方文檔上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函數輸入的是struct和struct的某一或多個字段,輸出錯誤信息(若沒有錯誤則輸出爲空)。
但是,如果查詢到數據庫中有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對象之後仍然要用所要查詢字段的值初始化所要查詢的字段)