作用
自动生成表的 结构体 代码定义
自动生成表的 增删改查代码
model
model.go
中是 结构体定义 生成后的代码
// Test1 测试表
type Test1 struct {
Id int32 ` gorm:"primaryKey" json:"id" ` //
GoodsId int64 ` gorm:"column:goods_id;default:0" json:"goods_id" ` //商品ID
Name string ` gorm:"column:name;default:" json:"name" ` //商品名称
CreatedTime int32 ` gorm:"column:created_time;default:0" json:"created_time" ` //
UpdatedTime int32 ` gorm:"column:updated_time;default:0" json:"updated_time" ` //
}
func (t Test1) TableName() string {
return "test1"
}
func (t Test1) DbName() string {
return "test"
}
//GetPrimaryKeyField 返回主键ID是哪个字段
func (t Test1) GetPrimaryKeyField() string {
return "Id"
}
//GetIsDelField 返回删除状态是哪个字段
func (t Test1) GetIsDelField() string {
return "deleted"
}
//GetDeleteTimeFiled 返回删除时间是哪个字段
func (t Test1) GetDeleteTimeFiled() string {
return "DeletedTime"
}
//BeforeCreate 创建记录时自动维护 CreatedTime UpdatedTime 两个字段, 这两个字段名 根据自己的表来设置
func (t Test1) BeforeCreate(tx *gorm.DB) error {
if len(tx.Statement.Selects) > 0 {
tx.Statement.Selects = append(tx.Statement.Selects,"CreatedTime","UpdatedTime")
}
tx.Statement.SetColumn("CreatedTime", time.Now().Unix())
tx.Statement.SetColumn("UpdatedTime", time.Now().Unix())
return nil
}
//BeforeUpdate 更新记录时自动维护 UpdatedTime 字段 这个字段名 根据自己的表来设置
func (t Test1) BeforeUpdate(tx *gorm.DB) error {
tx.Statement.SetColumn("UpdatedTime", time.Now().Unix())
return nil
}
生成有结构定义,字段名,默认值,注释。创建,更新时间自动维护。
hanlder.go
中是 生成的 增删改查 代码
生成命令
./scripts/gen_model.sh 127.0.0.1:3306 root root test test1
root root test test1
参数依次表示 数据库账号,密码,数据库,表名
表名可以是 * 表示生成数据库中所有表的 结构体和增删改查代码