iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
Modern Web

BeeGo系列 第 5

ORM(2)

前篇已經建立了 user model,這篇來介紹 ORM 的操作。

因為之前用 bee 產生的 model 程式碼裡,已經有寫好的函式了,所以我們直接參考 models/user.go ,使用裏面的函式來操作。

新增

新增得先建立 User 物件,然後傳入 AddUser() 裡,就可以新增了。

userNotAdded := models.User{Name: "John Doe", Birthday: time.Now(), Gender: "M"}                                                                                                       
userid, err := models.AddUser(&userNotAdded)
if err != nil {
  panic(err)
}
fmt.Println(userid)

查詢

查詢所有,可以用 GetAllUser()

  • query:

  • fields: 指定要查詢的欄位

  • sortby/order: 這兩個是一組的,sortby 是指定排序的欄位,order 是指定降冪(desc)、升冪(asc),sortby 有幾個元素,order 就要有幾個元素。

  • offset: 指定要略過的資料列數目

  • limit: 指定要取回的資料列數目

    query := map[string]string{}
    fields := []string{}
    sortby := []string{}
    order := []string{}
    offset := 0
    limit := -1
    users, err := models.GetAllUser(query, fields, sortby, order, offset, limit)
    if err != nil {
    panic(err)
    }
    fmt.Println(users)
    // 結果:[{1 John Doe M 2019-09-11 10:15:51 +0000 UTC}]

查詢單個

給定指定的 Id,就可以查到該筆。

user, err := models.GetUserById(1)
if err != nil {
    panic(err)
}
fmt.Println(user)
// 結果:&{1 John Doe M 2019-09-11 10:15:51 +0000 UTC}

修改

查詢單個之後,可以接著做修改。

// Update                                                                                                                                                                                                                                 
user.Name = "Mary Jane"
user.Gender = "F"
err = models.UpdateUserById(user)
if err != nil {
    panic(err)
}
// Retrieve again to verify
user, err = models.GetUserById(1)
if err != nil {
    panic(err)
}
fmt.Println(user)
// 結果:&{2 Mary Jane F 2019-09-11 10:15:51 +0000 UTC}

Delete

給定 Id,可以直接刪除

// Delete                                                                                                                                                                                                                                 
err := models.DeleteUser(1)
if err != nil {
    panic(err)
}

小結

如果未來有其他的需求,可以直接參考 models/user.go 內容來做新增或修改。如果還想要知道更多,可以再去參考網站上的文件 - BeeGo ORM


上一篇
ORM(1)
下一篇
Controller and View(1)
系列文
BeeGo30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言