【问题标题】:How get data from database in Go&Beego?Go&Beego如何从数据库中获取数据?
【发布时间】:2018-02-19 19:59:41
【问题描述】:

我尝试在 Go&Beego 上创建一个简单的 REST 服务。

我看不懂Beego的逻辑。

所有示例都有关于如何在我需要获取所有项目时仅检索一项的信息。

在 API 的情况下。

控制器:

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()
}

型号:

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
}

这行得通!但是,如何从数据库中获取数据?

数据库连接正常(MySQL)

【问题讨论】:

  • 执行sql查询,处理结果,返回?

标签: mysql go beego


【解决方案1】:

您应该使用QueryTable 提到的here

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

在您的情况下,您的 GetAllUsers 应该看起来像这样,但我没有测试它。

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

【讨论】:

    猜你喜欢
    • 2018-07-14
    • 1970-01-01
    • 2012-11-20
    • 2020-10-31
    • 2021-02-04
    • 2018-01-30
    • 2021-04-13
    相关资源
    最近更新 更多