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

标签 mysql go beego

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

看不懂Beego的逻辑

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

如果是 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()
}

型号:

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)

最佳答案

您应该使用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
}

关于mysql - Go&Beego 如何从数据库中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46158034/

相关文章:

json - Go语言中带有结果对象的动态结构

go - 将 Sentry 与 Beego 结合使用

web-applications - 跨多个包的全局 session 管理的命名空间/范围问题

PHP PDO 参数编号无效

go - 无法使用 TensorFlow Go API 进行预测

mysql - 当涉及的所有列都相同且仅 where 条件发生变化时,为什么查询执行速度如此之慢?

go - 将带有 null 的 bigquery 行映射到结构后出现异常

go - 使用 "var"声明一个新的结构实例与在 Go 中使用 "new"有何不同?

mysql - MySQL 中传递给 IN() 的最大项目数是多少

mysql - 根据多列值在表中搜索