Golang Go语言中 beego ORM 写法

发布于 1周前 作者 vueper 来自 Go语言

刚摸 beego ,对 orm 也没什么概念,写 model 无从下手,请教一下
我有两张表

type A struct {
Name string `orm:"size(64);pk"`
Value string `orm:"size(512)"`
}
type B struct {
Name string `orm:"size(64)"`
TextName string `orm:"size(64)"`
}

表 B.TextName 的值是 A.Value 的值, Name 和 TextName 都可以重复,所以没有主键
于是 orm 设定和查询死活写不出来
查询是查找所有 B.Name = blahblah 的 A.Name,A.Value,大概是这样

SELECT `name`,`value` from `A` WHERE `name` IN (SELECT `text_name` from `B` WHERE `name` = 'main')

大家帮帮忙


Golang Go语言中 beego ORM 写法

更多关于Golang Go语言中 beego ORM 写法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

4 回复

都用 ORM 了,还写什么 query 。。。这样用 ORM 的意义何在

更多关于Golang Go语言中 beego ORM 写法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


那楼上说说这个要怎么表达出来呀

看需求像一对多

在Go语言中,使用Beego框架进行ORM(对象关系映射)操作是一个常见的实践。Beego ORM提供了一种方便的方法来处理数据库操作,它支持多种数据库,如MySQL、PostgreSQL等。以下是一个基本的Beego ORM写法示例:

  1. 安装Beego ORM: 在项目的GOPATH中,使用以下命令安装Beego ORM:

    go get github.com/astaxie/beego/orm
    
  2. 注册数据库: 在main.goinit函数中注册数据库驱动和数据库信息:

    import (
        "github.com/astaxie/beego/orm"
        _ "github.com/go-sql-driver/mysql"
    )
    
    func init() {
        orm.RegisterDataBase("default", "mysql", "root:password@tcp(127.0.0.1:3306)/dbname?charset=utf8")
    }
    
  3. 定义模型: 定义与数据库表对应的结构体,并注册模型:

    type User struct {
        Id   int
        Name string
    }
    
    func init() {
        orm.RegisterModel(new(User))
    }
    
  4. 操作数据库: 使用ORM提供的方法进行数据库操作,如查询、插入、更新和删除。

    o := orm.NewOrm()
    var user User
    err := o.QueryTable("user").Filter("Name", "john").One(&user)
    if err == nil {
        fmt.Println(user)
    }
    

以上示例展示了如何在Beego中使用ORM进行基本的数据库操作。根据具体需求,你可以进一步扩展和定制ORM的使用方式。

回到顶部