SQL 一键转 GORM 模型,支持字段注释、类型映射、tag 自定义!

SQL 一键转 GORM 模型,支持字段注释、类型映射、tag 自定义!

在使用 Golang + GORM 开发项目时,你是否也经历过这些「重复性痛苦」:

  • ✅ 拿到建表 SQL,要手动写 struct
  • ✅ 字段多、类型复杂,还要写 json、gorm tag
  • ✅ COMMENT 注释想同步到代码里?只能手敲?

现在你只需要一个工具:

👉 SQL 转 GORM 在线生成器(支持 MySQL / PostgreSQL / Oracle)

只需粘贴 SQL,即可自动生成 GORM 模型,字段、注释、tag 一应俱全!


🧪 示例演示:从 SQL 到 GORM struct

输入建表 SQL:

CREATE TABLE user (id BIGINT PRIMARY KEY COMMENT '用户ID',username VARCHAR(100) NOT NULL COMMENT '用户名',email VARCHAR(255) COMMENT '邮箱地址',is_active BOOLEAN DEFAULT true COMMENT '是否启用',created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
);

输出 Go Struct:

// Code generated by https://gotool.top
package modelimport ("gorm.io/gorm"
)// User
type User struct {Id int64 `gorm:"column:id;primary_key;comment:'用户ID'"`Username string `gorm:"column:username;NOT NULL;comment:'用户名'"`Email string `gorm:"column:email;comment:'邮箱地址'"`IsActive string `gorm:"column:is_active;default:true;comment:'是否启用'"`CreatedAt string `gorm:"column:created_at;default:CURRENT_TIMESTAMP;comment:'创建时间'"`
}// TableName 表名
func (u *User) TableName() string {return "user"
}// UserRepo 
type UserRepo struct {DB *gorm.DB
}func NewUserRepo(db *gorm.DB) *UserRepo {return &UserRepo{DB: db}
}// Create 插入数据
func (u *UserRepo) Create(entity *UserRepo) error {return r.DB.Create(entity).Error
}// GetByID 根据 ID 获取数据
func (u *UserRepo) GetByID(id interface{}) (*UserRepo, error) {var entity UserRepoif err := r.DB.First(&entity, id).Error; err != nil {return nil, err}return &entity, nil
}// GetAll 获取所有数据
func (u *UserRepo) GetAll() ([]*UserRepo, error) {var entities []*UserRepoif err := r.DB.Find(&entities).Error; err != nil {return nil, err}return entities, nil
}// Update 更新数据
func (u *UserRepo) Update(entity *UserRepo) error {return r.DB.Save(entity).Error
}// DeleteByID 根据 ID 删除数据
func (u *UserRepo) DeleteByID(id interface{}) error {return r.DB.Delete(new(UserRepo), id).Error
}

无需插件、无需安装,浏览器打开,粘贴 SQL 即生成!


✨ 核心亮点功能

功能点描述
✅ 支持主流数据库语法兼容 MySQL、PostgreSQL、Oracle 的建表语法
✅ 自动生成 tag支持 gorm, json, 可选 form, binding, db 等 tag
✅ 自动类型映射SQL 类型 → Go 类型智能转换(支持 int64, string, bool, time.Time 等)
✅ 保留字段注释SQL 中的 COMMENT 转为 Go 代码注释
✅ 自定义类名可设置结构体名称、字段命名风格(驼峰 / 下划线)
✅ 多表支持一次性处理多个建表语句,生成多个 struct
✅ 零依赖在线工具,纯前端处理,无需登录或安装任何插件

🚀 开发场景广泛适用

  • 快速从数据库导出建表 SQL,生成后端 GORM 模型
  • 接手旧项目,拿到 SQL 脚本后快速建模
  • 构建代码生成工具链的一部分
  • 保证字段注释 + 结构体一致性,减少出错率
  • 数据表字段频繁变更时,自动同步 Golang 代码结构

🌐 工具地址

🔗 工具入口:
👉 https://gotool.top/handlesql/sql2gorm

复制 SQL → 一键生成 → 复制即可用!


🎁 附加福利:更多开发效率工具

该工具由 GoTool.Top 提供,是一个专为开发者打造的工具站,还包含:

  • ✅ JSON 转 Java Bean:json-to-java
  • ✅ SQL 转 Java:sql-to-java
  • ✅ SQL 转自定义模板:sql-to-custom
  • ✅ CURL 转代码(Go / Python / Java)
  • ✅ Struct 转 JSON、UUID 生成、时间戳转换等

一站式解决开发过程中的各种“小工具刚需”!


❤️ 最后

如果你也经常手写 GORM 结构体,不如收藏这个工具,节省重复劳动时间,让你把更多精力放在业务逻辑上。

📌 点赞 + 收藏 + 转发本文,别让你的同事还在一行一行地写 struct!

👉 工具直达:https://gotool.top/handlesql/sql2gorm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88118.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端计算机视觉:使用 OpenCV.js 在浏览器中实现图像处理

一、OpenCV.js 简介与环境搭建OpenCV(Open Source Computer Vision Library)是一个强大的计算机视觉库,广泛应用于图像和视频处理领域。传统上,OpenCV 主要在后端使用 Python 或 C 等语言。但随着 WebAssembly (Wasm) 技术的发展&…

开发在线商店:基于Vue2+ElementUI的电商平台前端实践

Hi,我是布兰妮甜 !在当今数字化时代,电子商务已成为商业领域的重要组成部分。开发一个功能完善、用户友好的在线商店应用对于企业拓展市场至关重要。本文将详细介绍如何使用Vue2框架配合ElementUI组件库开发一个完整的在线商店应用。 文章目录…

vue3 随手笔记9--组件通信方式9/2--自定义事件

一、什么是自定义事件? 自定义事件是 Vue 组件间通信的一种机制。子组件通过 this.$emit(事件名, 数据) 触发一个事件。父组件监听这个事件并执行相应的逻辑。 二、基本使用 准备工作 demo 继续使用笔记8中的 链接为demo 在views文件夹下 创建新的文件夹为cust…

深入理解Reactor调试模式:Hooks.onOperatorDebug() vs ReactorDebugAgent.init()

在现代Java开发中,调试Reactor流是确保应用程序性能和稳定性的关键步骤。Reactor调试模式提供了多种初始化方法,其中最常用的两种是Hooks.onOperatorDebug()和ReactorDebugAgent.init()。本文将深入探讨这两种方法的区别,帮助开发者选择最适合…

QT6 源(151)模型视图架构里的表格窗体视图 QTableWidget 篇一:先学习俩属性以及 public 权限的公共成员函数,

(1)本篇的内容因为是子类,内容较视图基类简单了一些。又因为时间紧迫,不再详细举例了。详细的测试可以满足好奇心,也可以增强写代码的自信心。奈何时间不够。不完美,就不完美了。以后有机会,再补…

ffmpeg 下载、安装、配置、基本语法、避坑指南(覆盖 Windows、macOS、Linux 平台)

ffmpeg 下载、安装、配置、基本语法、避坑指南(覆盖 Windows、macOS、Linux 平台) 本文是一篇面向初学者的超详细 FFmpeg 教程,包括 FFmpeg 下载、安装、配置、基本语法 与 避坑指南。覆盖 Windows、macOS、Linux 平台的安装方式与 环境变量…

Kotlin 安装使用教程

一、Kotlin 简介 Kotlin 是 JetBrains 开发的一种现代、静态类型的编程语言,完全兼容 Java,主要应用于 Android 开发、后端服务开发、前端 Web 开发(Kotlin/JS)和多平台开发(Kotlin Multiplatform)。 二、…

day08-Elasticsearch

黑马商城作为一个电商项目,商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的,存在很多问题。 首先,查询效率较低。 由于数据库模糊查询不走索引,在数据量较大的时候,查询性能很…

transformers 笔记:自定义模型(配置+模型+注册为AutoCLass+本地保存加载)

Transformers 模型设计上是可定制的。每个模型的代码都包含在 Transformers 仓库的 model 子文件夹中(transformers/src/transformers/models at main huggingface/transformers),每个模型文件夹通常包含: modeling.py&#xff1…

Java工具类,对象List提取某个属性为List,对象List转为对象Map其中某个属性作为Key值

Java工具类package org.common;import lombok.extern.slf4j.Slf4j;import java.util.*; import java.util.stream.Collectors;Slf4j public final class CollectorHelper {/*** param element* param propertyName* param <E>* return*/public static <E> List toL…

ATE FT ChangeKit学习总结-20250630

目录 一、基本概念 二、主要特点 三、BOM LIST Shuttle Hot Plate Dock Plate Contactor 四、设计要点 五、参考文献与链接 一、基本概念 Change Kit在半导体封装测试领域中是一个重要的组件,它作为Handler(自动化分类机)的配套治具,在芯片测试过程中发挥着关键作…

【网络协议安全】任务14:路由器DHCP_AAA_TELNET配置

本文档将详细介绍在华为 eNSP 仿真环境中&#xff0c;实现路由器 DHCP 服务器功能、AAA 认证以及 TELNET 远程登录配置的完整步骤&#xff0c;适用于华为 VRP 系统路由器。 一、配置目标 路由器作为 DHCP 服务器&#xff0c;为局域网内的设备自动分配 IP 地址、子网掩码、网关…

深度探索:现代翻译技术的核心算法与实践(第一篇)

引言:翻译技术的演进之路 从早期的基于规则的机器翻译(RBMT)到统计机器翻译(SMT),再到如今主导行业的神经机器翻译(NMT),翻译技术已经走过了漫长的发展道路。现代翻译系统不仅能够处理简单的句子,还能理解上下文、识别领域术语,甚至捕捉微妙的文化差异。 本系列文章将带…

玩转Docker | 使用Docker部署NotepadMX笔记应用程序

玩转Docker | 使用Docker部署NotepadMX笔记应用程序 前言一、NotepadMX介绍工具简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署NotepadMX服务下载NotepadMX镜像编辑部署文件创建容器检查容器状态检查服务端口安全设置四、访问NotepadMX服务访…

Web前端:not(否定伪类选择器)

not&#xff08;否定伪类选择器&#xff09;CSS中的 :not() 选择器是⼀个否定伪类选择器&#xff0c;它⽤于选择不符合给定选择器的元素。这是⼀种排除特定元素的⽅法&#xff0c;可以⽤来简 化复杂的选择器&#xff0c;提⾼ CSS 规则的灵活性和精确性。:not() 选择器的基本语法…

【BTC】比特币网络

目录 一、比特币网络架构 1.1 节点加入与离开 二、消息传播方式 三、交易处理机制 四、网络传播问题 五、实际应用问题及解决 本章节讲比特币网络的工作原理&#xff0c;讲解新创建的区块是如何在比特币网络中传播的。 一、比特币网络架构 比特币工作在应用层&#xff…

Clickhouse 的历史发展过程

20.5.3 开始支持多线程20.6.3 支持explainmysql 20.8 实时同步mysql&#x1f4cc; ‌一、早期版本阶段&#xff08;1.1.x系列&#xff09;‌‌版本范围‌&#xff1a;1.1.54245&#xff08;2017-07&#xff09;→ 1.1.54394&#xff08;2018-07&#xff09;‌核心特性‌&#x…

玩转n8n工作流教程(一):Windows系统本地部署n8n自动化工作流(n8n中文汉化)

在Windows系统下使用 Docker 本地部署N8N中文版的具体操作&#xff0c;进行了详尽阐述&#xff0c;玩转n8n工作流教程系列内容旨在手把手助力从0开始一步一步深入学习n8n工作流。想研究n8n工作流自动化的小伙伴们可以加个关注一起学起来。后续也会持续分享n8n自动化工作流各种玩…

mini-program01の系统认识微信小程序开发

一、官方下载并安装 1、下载&#xff08;I选了稳定版&#xff09; https://developers.weixin.qq.com/miniprogram/dev/devtools/download.htmlhttps://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 2、安装&#xff08;A FEW MOMENT LATER&#xff09;…

如何将 Java 项目打包为可执行 JAR 文件

如何将 Java 项目打包为可执行 JAR 文件我将详细介绍将 Java 项目打包为可执行 JAR 文件的完整流程&#xff0c;包括使用 IDE 和命令行两种方法。方法一&#xff1a;使用 IntelliJ IDEA 打包步骤 1&#xff1a;配置项目结构打开项目点击 File > Project Structure在 Project…