ORM使用
文档对应视频课程中3.6章节,请小伙伴们对应学习。
什么是orm?
在关系型数据库和对象之间作一个映射,在操作数据库时,不需要写复杂的SQL语句,只需要像操作对象一样。
第一步 安装
go get github.com/astaxie/beego/orm
go get github.com/go-sql-driver/mysql
第二步 配置数据库信息,加载信息
app.conf中增加配置信息
[dev]
defaultdb = root:123456@tcp(127.0.0.1:3306)/fyouku?charset=utf8
main.go中加载信息
import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
func main() {
//获取配置文件中信息
defaultdb := beego.AppConfig.String("defaultdb")
orm.RegisterDriver("mysql", orm.DRMySQL)
orm.RegisterDataBase("default", "mysql", defaultdb, 30, 30)
beego.Run()
}
注意:ORM 必须注册一个别名为 default 的数据库,作为默认使用
第三步 model中使用
package models
import (
"github.com/astaxie/beego/orm"
)
//定义type
type Advert struct {
Id int
Title string
SubTitle string
AddTime int64
Img string
Url string
}
func init() {
//注册model
orm.RegisterModel(new(Advert))
}
func GetChannelAdvert(channelId int) (int64, []Advert, error) {
//使用前先new一下
o := orm.NewOrm()
var adverts []Advert
num, err := o.Raw("SELECT id, title, sub_title,img,add_time,url FROM advert WHERE status=1 AND channel_id=? ORDER BY sort DESC LIMIT 1", channelId).QueryRows(&adverts)
return num, adverts, err
}