知识分享之Golang——gorm的结构体常用标签

简介: 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。知识分享系列目前包含Java、Golang、Linux、Docker等等。

知识分享之Golang——gorm的结构体常用标签

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

内容

近期一直在使用gorm进行数据的增删改查操作,其每个表或每个数据结果都会对应一个结构体,但是有时在使用这个结构体时会额外增加一部分字段作为一些其他业务逻辑的使用,这时如何来有效避免一些字段不被gorm进行处理呢,我去查阅了官方文档和其网上的资料,整理本节内容,以下是其结构体中常用的使用方式,便于小伙伴们使用:
|标签名|作用|案例|
|---|---|---|
|column|指定字段名,如果不指定通常是字段的小写驼峰格式|gorm:"column:usr_id;"|
|primaryKey|是否是主键|gorm:"column:usr_id;primaryKey"|
|unique|是否唯一|gorm:"column:usr_id;unique"|
|default|指定默认值|gorm:"column:usr_id;default:123"|
|-|忽略该字段|gorm:"-"|
|->|只读|gorm:"->;column:usr_id"|
|<-|允许读和写|gorm:"<-;column:usr_id"|
|<-:update|允许读和更新|gorm:"<-:update;column:usr_id"|
|<-:create|允许读和创建|gorm:"<-:create;column:usr_id"|
|->:false;<-:create|仅创建|gorm:"->:false;<-:create;column:usr_id"|

// 覆盖User结构体使用的表名
func (User) TableName() string {
  return "profiles"
}

参见内容:

https://gorm.io/docs/models.html#embedded_struct
https://blog.csdn.net/qq_35709559/article/details/109711919

本文声明:

5330898-d1c72b6c90e378f3.png
知识共享许可协议

目录
相关文章
|
2月前
|
人工智能 测试技术 Go
Go 语言的主流框架
本文全面解析了 Go 语言主流技术生态,涵盖 Web 框架、微服务、数据库工具、测试与部署等多个领域。重点介绍了 Gin、Echo、Beego 等高性能框架,以及 gRPC-Go、Go-Micro 等微服务组件。同时分析了 GORM、Ent 等 ORM 工具与测试部署方案,并结合场景提供选型建议,助力开发者构建高效稳定的 Go 应用。
716 0
|
9月前
|
机器学习/深度学习 人工智能 算法
【AI系统】计算图挑战与未来
当前主流AI框架采用计算图抽象神经网络计算,以张量和算子为核心元素,有效表达模型计算逻辑。计算图不仅简化数据流动,支持内存优化和算子调度,还促进了自动微分功能的实现,区分静态图和动态图两种形式。未来,计算图将在图神经网络、大数据融合、推理部署及科学计算等领域持续演进,适应更复杂的计算需求。
249 5
【AI系统】计算图挑战与未来
|
9月前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
544 2
|
10月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
存储 网络协议 安全
获取真实 IP 地址(二):绕过 CDN(附链接)
获取真实 IP 地址(二):绕过 CDN(附链接)
|
SQL 关系型数据库 MySQL
Go语言之Gorm框架(一) ——初窥Gorm框架
Go语言之Gorm框架(一) ——初窥Gorm框架
276 0
|
SQL 程序员 数据库
总结查看 .NET EF 生成的 SQL 的 3 种方式,亲测可用
总结查看 .NET EF 生成的 SQL 的 3 种方式,亲测可用
319 0
|
关系型数据库 MySQL Unix
MySQL 计算时间差分钟
【5月更文挑战第3天】
671 2
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
575 0
|
fastjson Java Maven
Java - 打印 Map & List 等复杂类型
Java - 打印 Map & List 等复杂类型
817 0

热门文章

最新文章