本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

模型定义一

一、模型定义的作用

用作数据库数据转换和自动建表

二、模型名和表名的映射关系

  1. 规则
  • 第一个大写字母变为小写,
  • 遇到其他大写字母变为小写并且在前面加下划线,
  • 连着的几个大写字母,只有第一个遵循上面的两条规则,其他的大写字母转为小写,不加下划线,遇到小写,前面的第一个大写字母变小写并加下划线
  • 复数形式
  1. 举例
  • User --> users 首字母小写,复数
  • UserInfo --> user_infos
  • DBUserInfo --> db_user_infos
  • DBXXXXUserInfo --> dbxxxx_user_infos

三、在默认表名上加其他规则

// 在默认表名前加sys_前缀 gorm.DefaultTableNameHandler = func (db *gorm.DB, defaultTableName string) string { return "sys_" + defaultTableName; } 自定义表名: func (模型) TableName() string{ return "新的表名" }

四、结构体字段名和列名的对应规则

  1. 规则
    * 列名是字段名的蛇形小写
  2. 举例
  • Name --> name
  • CreatedTime --> create_time
  1. 可以通过gorm标签指定列名,AnimalId int64 `gorm:“column:beast_id”`

五、gorm.Model

基本模型定义gorm.Model,包括字段ID,CreatedAt,UpdatedAt,DeletedAt

只需要在自己的模型中指定gorm.Model匿名字段,即可使用上面的四个字段

// 添加字段 `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt` type User struct { gorm.Model Name string }

ID:主键自增长

CreatedAt:用于存储记录的创建时间

UpdatedAt:用于存储记录的修改时间

DeletedAt:用于存储记录的删除时间

1518人已阅读,今天你学习了吗?

添加新回复
目录