BeegoOrm 映射自定义表名以及自定义字段

CreateTime : 2019-12-17
By.chen
原文地址 beego框架之orm模块——mysql

在我们日常的开发中,往往不能够做到框架的ORM预设的理想状态。需要更多的可设定和自由性,比如表加了表前缀,字段字段大小写形式不一样之类的。
这个时候,也体现了BeeGo设计者想法的周全性。
当然这些都是有的。
使用结构体的Tag 可以实现自定义的字段名映射orm:"column(字段名)"
通过创建方法来实现表名的映射代码如下

核心代码

// 在结构体中使用Tag标签 orm:"column(字段名)" 来指定自定义的字段名
type LoginUsers struct {
    Id int64          `orm:"column(id)" json:"id"`
    UserName string   `orm:"column(username)" json:"username"`
    PassWord string   `orm:"column(password)" json:"-"`
    Question string   `orm:"column(question)" json:"-"`
    Answer string     `orm:"column(answer)" json:"-"`
    IsBan int32       `orm:"column(is_ban)" json:"-"`
    AppNum int64      `orm:"column(app_num)" json:"app_num"`
    CodeSucNum int64  `orm:"column(code_suc_num)" json:"code_suc_num"`
    CreateTime int64  `orm:"column(create_time)" json:"create_time"`
}
// 给结构体添加一个方法 方法会由框架自行调用
// 实现model 映射到对应的表上
func (l *LoginUsers) TableName() string {
    return "ssuui_login_users"
}