网站首页 » Beego » Beego 模型beego ORM 安装及项目中配置

Beego 模型beego ORM 安装及项目中配置

June 27, 2020 Beego

安装 beego orm

go get github.com/astaxie/beego/orm

项目中使用

main.go 中引入包 models下的model.go

import (
    "github.com/astaxie/beego"
    "webclass/models"
    _ "webclass/routers"
    _ "webclass/models" //models的init函数加载

)

models/model.go 文件中统一配置数据库连接信息及注册模型,数据库的链接信息只写入到model.go 中
在链接数据库的时候,使用的是mysql 驱动方式,一定要引入_ "github.com/go-sql-driver/mysql"

/**
@author : Kevink
@time : 2020/6/26 7:52 上午
*/
package models

import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)


type User struct {
    Id int
    Name string
    Password string
    CreateTime int
    UpdateTime int
    Posts []*Posts `orm:"reverse(many)"` //设置一对多的反向关系        为什么这里要这么设置??
    Profile *Profile `orm:"reverse(one)"`    //设置一对一的反向关系
}

type Profile struct {
    Id int
    Age int
    User *User    `orm:"rel(one)"`    //设置一对一的反向关系
}

type Posts struct {
    Id int
    Title string
    Desc string
    CreateTime int
    File string
    User *User        `orm:"rel(fk)"`    //设置一对多关系
    Tags *Tags      `orm:"rel(fk)"`    //设置一对多关系
}

type Tags struct {
    Id int
    Title string
    Posts []*Posts `orm:"reverse(many)"` //多对多反向关系
}

//
func init()  {
    //开启调试模式,会打印查询语句
    orm.Debug = true

    //注册数据库
    // 参数1        数据库的别名,用来在 ORM 中切换数据库使用
    // 参数2        driverName
    // 参数3        对应的链接字符串    用户名:密码@/数据库名?charset=字符集
    err := orm.RegisterDriver("mysql", orm.DRMySQL)
    driverName := beego.AppConfig.String("sqldrivername")
    dataSource := beego.AppConfig.String("sqlusername") + ":" + beego.AppConfig.String("sqlpassword") + "@/" + beego.AppConfig.String("sqldatabase") + "?charset=utf8"

    err = orm.RegisterDataBase("default", driverName, dataSource)

    if err != nil {
        beego.Info("链接数据库失败")
        return
    }
    //注册模型
    orm.RegisterModel(new(User), new(Posts), new(Profile), new(Tags))
}

添加新评论