Golang Go语言中 beego ORM 写法
刚摸 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
都用 ORM 了,还写什么 query 。。。这样用 ORM 的意义何在
更多关于Golang Go语言中 beego ORM 写法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
那楼上说说这个要怎么表达出来呀
看需求像一对多
在Go语言中,使用Beego框架进行ORM(对象关系映射)操作是一个常见的实践。Beego ORM提供了一种方便的方法来处理数据库操作,它支持多种数据库,如MySQL、PostgreSQL等。以下是一个基本的Beego ORM写法示例:
-
安装Beego ORM: 在项目的
GOPATH
中,使用以下命令安装Beego ORM:go get github.com/astaxie/beego/orm
-
注册数据库: 在
main.go
或init
函数中注册数据库驱动和数据库信息: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") }
-
定义模型: 定义与数据库表对应的结构体,并注册模型:
type User struct { Id int Name string } func init() { orm.RegisterModel(new(User)) }
-
操作数据库: 使用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的使用方式。