作用
自动生成表的 结构体 代码定义
自动生成表的 增删改查代码
model
model.go
中是 结构体定义 生成后的代码
// Test1 测试表type Test1 struct {Id int32 ` gorm:"primaryKey" json:"id" ` //GoodsId int64 ` gorm:"column:goods_id;default:0" json:"goods_id" ` //商品IDName 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
参数依次表示 数据库账号,密码,数据库,表名
表名可以是 * 表示生成数据库中所有表的 结构体和增删改查代码
