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

Gorm散知识点小结--标签名

在 GORM 中,当结构体字段没有通过 gorm:"column:xxx" 标签(即你提到的 column 配置)显式指定数据库列名时,字段名的大小写会按照 GORM 默认的映射规则转换为数据库列名,具体规则如下:

1. 结构体字段名 -> 数据库列名的默认转换规则

GORM 会将结构体的驼峰式命名(CamelCase)字段自动转换为数据库的蛇形命名(snake_case)列名,与字段本身的大小写无关,只关注命名格式。

例如:

type User struct {ID       int    // 转换为列名:idUserName string // 转换为列名:user_nameEmail    string // 转换为列名:emailage      int    // 小写开头的字段,GORM 会忽略(见下面说明)
}
  • 大写开头的字段(如 IDUserName):会被 GORM 识别,并按驼峰转蛇形规则映射列名。
  • 小写开头的字段(如 age):GORM 会默认忽略(视为非数据库字段),不会映射到数据库列。

2. 关键注意点

  • 字段可见性:GORM 只处理结构体中首字母大写的字段(公共字段),首字母小写的字段(私有字段)会被忽略,无论是否有 column 标签。
  • 大小写不影响转换逻辑:只要字段首字母大写,无论中间字母是大写还是小写(如 UserNameUserName),都会统一转换为蛇形小写(user_name)。
  • 特殊字段名:如果字段名是 ID,GORM 会默认将其视为主键(PRIMARY KEY),列名映射为 id

3. 示例说明

type Product struct {ProductID  int     // 映射列名:product_idPrice      float64 // 映射列名:priceStockCount int     // 映射列名:stock_countsku        string  // 首字母小写,GORM 忽略,不生成列
}

对应的数据库表结构中,列名会是 product_idpricestock_countsku 不会被创建)。

总结

  • 若要让字段映射到数据库,必须首字母大写(保证可见性)。
  • 未指定 column 标签时,GORM 自动将驼峰式字段名转为蛇形列名(全小写,单词间下划线分隔)。
  • 首字母小写的字段会被 GORM 忽略,不会参与数据库交互。
http://www.dtcms.com/a/548625.html

相关文章:

  • python语言基础-6 多任务-6.0 基本概念
  • 四川省工程建设信息官方网站郴州做网站ku0735
  • Kubernetes 资源管理总结
  • 【源码+数据集+训练教程】基于YOLOv8+Flask+Layui的智能垃圾分类检测系统
  • X_T 转换为 3DXML 的技术指南及迪威模型网在线转换推荐
  • NumPy 2.x 完全指南【四十二】线性代数之向量运算
  • 制作网站要求com网站注册域名
  • 网站建设教程搭建芽嘱湖南岚鸿信赖营销单页网站模板
  • 【RDMA】mlx5dev mlx5dv_devx 接口
  • 【墨铺网教程】一台电脑加入多个局域网,让电脑做上传下载主力又当存储盘
  • 变身智能车载台,AORO P9000U三防平板赋能工业数字化升级
  • 安全登录多人共用的机密电脑:基于动态凭证与会话隔离的解决方案
  • 全球首款卷轴屏电脑发布!ToDesk+扩展屏成平替方案
  • 在Lua用luasql-sqlite3库访问SQLite数据库
  • 代码随想录第51 52天 | 图论-岛屿问题汇总
  • 分布式存储:Ceph、GlusterFS、MinIO架构与部署
  • 机械外协加工网最新订单移动网站如何优化排名
  • 11 种方法解决小米/米手机无法通过 USB 连接电脑的问题
  • Ubuntu:设置程序开机自启动
  • 化妆品品牌网站如何做wordpress pdf文章
  • vue 网站导航栏
  • 如何提高 IPA 安全性 多工具组合打造可复用的 iOS 加固与反编译防护体系(IPA 安全 iOS 加固 无源码混淆 Ipa Guard 实战)
  • 上海市工程建设交易中心网站深圳公司广告片制作
  • FreeRTOS 学习:(三)HAL库、标准库 和 FreeRTOS 的关联性,简述
  • 使用 Tauri + Rust 构建跨平台桌面应用:前端技术的新边界
  • 如何录屏?【图文详解】免费录屏软件?电脑如何录屏?电脑怎么录屏?
  • 深入Rust:Box、Rc、Arc智能指针机制解析与实践指南
  • 【项目实践】公寓租赁项目(十):基于SpringBoot登录管理接口开发
  • Java1030 abstract 继承
  • 第六部分:VTK进阶(第180章 重采样与插值)