当前位置: 首页 > news >正文

Golang GORM 模型定义

模型定义


参考文档:https://gorm.io/zh_CN/docs/models.html

模型一般都是普通的 Golang 的结构体,Go的基本数据类型,或者指针。

模型是标准的struct,由Go的基本数据类型、实现了Scanner和Valuer接口的自定义类型及其指针或别名组成(创建一个结构体可以将其变为一张表)

定义一张表:

 常识:小写属性是不会生成字段的

ID这里其实就是一个主键,主键就是可以自增并且不能重复。

CreatedAt *time.Time `json:"createdAt" gorm:"column:create_at"`  你在创建的时候不需要传这个字段,你创建的时间会帮你自动加进去。在表里面创建的字段名叫create_at。

建议在mysql里面将表创建好和设计好,然后再回过头来做gorm的操作。这些直接在数据库底层搞好就行了,不建议和上面一样写的乱七八糟。

 

 

自动生成表结构


AutoMigrate传的是指针对象。

AutoMigrate的逻辑是只新增,不删除,不修改(大小会修改)例如将Name修改为Name1,进行迁移,会多出一个name1的字段

生成表结构如下:

 

 

 

修改大小


我们可以使用gorm的标签进行修改,有两种方式

type User1 struct {Id       int64  `gorm:"primary_key",gorm:"size:10"`Username string `gorm:"size:10"`Password string `gorm:"size:10"`
}db.Debug().AutoMigrate(&User1{})2023/07/25 15:49:14 C:/Users/W10/GolandProjects/day1/gorm/create.go:25
[44.529ms] [rows:0] ALTER TABLE `user1` MODIFY COLUMN `username` varchar(10)2023/07/25 15:49:14 C:/Users/W10/GolandProjects/day1/gorm/create.go:25
[41.411ms] [rows:0] ALTER TABLE `user1` MODIFY COLUMN `password` varchar(10)

 

 

 

字段标签


标签是声明模型时可选的标记

type User1 struct {Id       int64  `gorm:"primary_key;size:2"`Username string `gorm:"size:10"`Password string `gorm:"column:passwd;size:10"`
}2023/07/25 16:02:43 C:/Users/W10/GolandProjects/day1/gorm/create.go:25
[21.548ms] [rows:0] ALTER TABLE `user1` ADD `passwd` varchar(10)
http://www.lryc.cn/news/101822.html

相关文章:

  • 微服务的各种边界在架构演进中的作用
  • 使用 docker-compose 一键部署多个 redis 实例
  • 14-测试分类
  • 打开域名跳转其他网站,官网被黑解决方案(Linux)
  • redis总结
  • 现代C++中的从头开始深度学习:激活函数
  • python怎么实现tcp和udp连接
  • java设计模式-观察者模式(jdk内置)
  • 秒级体验本地调试远程 k8s 中的服务
  • CV前沿方向:Visual Prompting 视觉提示工程下的范式
  • Redis五大基础类型解析
  • 在CSDN学Golang云原生(服务网格istio)
  • Golang 获取本地 IP 地址方法
  • 抖音seo短视频账号矩阵系统技术开发简述
  • 运维高级--shell脚本完成分库分表
  • Mysql 忘记密码怎么重置密码(详细步骤)
  • 机器学习深度学习——图像分类数据集
  • 【PWN · 栈迁移】[BUUCTF]ciscn_2019_es_2
  • 网络编程(13): 网络通信常用命令(后续待补充)
  • flask创建数据库连接池
  • C语言手撕顺序表
  • 常见的排序算法
  • C#如何使用SQLite数据库?
  • 如何将表格中的状态数据转换为Tag标签显示
  • centos中修改防火墙端口开放配置
  • 程序设计 算法基础
  • 【数据结构】之十分好用的“链表”赶紧学起来!(第一部分单向链表)
  • ubuntu开机自启动
  • Git将其他分支合并至主分支
  • Python+request+pytest 接口自动化测试框架入门(与unittest的比较)