douyongdao4046 2017-09-11 14:24
浏览 393

如何在Go&Beego中从数据库获取数据?

I try create a simple REST service on Go&Beego.

I can not understand the logic of Beego.

All examples have information on how to retrieve just one item while I need to get all items.

In case of API.

Controller:

package controllers
import (
    "api/models"
    "github.com/astaxie/beego"
)

type UserController struct {
    beego.Controller
}

func (u *UserController) GetAll() {
    users := models.GetAllUsers()
    u.Data["json"] = users
    u.ServeJSON()
}

Model:

package models

import (
    "github.com/astaxie/beego/orm"
)

var (
    UserList map[int]*User
)

func init() {
    orm.RegisterModel(new(User))

    UserList = make(map[int]*User)

    u := User{1, "Chandler", "Bing", "chandlerbing@gmail.com"}
    UserList[1] = &u
}

type User struct {
    Id int `form:"id"`
    First_name string `form:"first_name"`
    Last_name string `form:"last_name"`
    Email string `form:"email"`
}

func GetAllUsers() map[int]*User {
    return UserList
}

That works! But, how can I get data from database?

Database connections are ok (MySQL)

  • 写回答

1条回答 默认 最新

  • doulai7239 2017-09-12 16:46
    关注

    You should use QueryTable as mentioned here

    var users []*User
    num, err := o.QueryTable("user").Filter("name", "slene").All(&users)
    

    In your case your GetAllUsers should look like this but I didn't tested it.

    func GetAllUsers() map[int]*User {
        usrs, err := orm.QueryTable("users").Values(&UserList)
        if err != nil {
            panic(err)
        }
        return UserList
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题