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
英文地址,請注明出處:http://en.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…