SQL2Struct:一款根據sql語句自動生成golang結構體的chrome外掛

艾逗筆發表於2017-11-06

前言

最近在用golang寫api,用到gorm包進行資料庫操作,gorm是golang中非常流行的一個orm包,使用gorm進行資料庫操作前,一般需要先用一個golang結構體對資料表欄位進行對映,於是我們經常需要根據資料表中的欄位名和型別來手動在go程式碼中寫struct,有時候資料表欄位很多的情況下,這種方式很耗費精力。於是便想到了寫一個chrome外掛,根據資料表的DDL語句來自動生成golang結構體,可以配置go結構體欄位型別與mysql資料表欄位型別的一個對映關係。

SQL2Struct

SQL2Struct是一款對golang開發者友好的chrome外掛,根據在mysql中建立資料表的sql語句,自動生成golang中的struct,在golang開發者使用諸如gorm之類的框架時,可以很好的把mysql中的資料表與orm的結構體關聯起來。

github地址:github.com/mikemintang…

使用說明

  1. 下載chrome擴充套件檔案:點選下載

  2. 安裝擴充套件

  1. 在mysql中獲取生成資料表的sql語句

show create table users\G;

  1. 進入外掛主頁面,把上一步得到的sql語句貼上至左側的輸入框

  2. 複製右側生成的struct,貼上至golang程式碼中即可

配置說明

目前只有三個配置項

  • gorm:開啟此配置項,則生成struct的時候,每個欄位都會包含類似gorm:column:"id"這樣的資訊。
  • json:開啟此配置項,則生成struct的時候,每個欄位都會包含類似json:"id"這樣的資訊。
  • typeMap:此配置項定義mysql資料表欄位型別與go欄位型別的對映關係,在資料解析的時候會安裝配置的對映關係進行結構體生成。

Todolist

  • [ ] 支援更多的mysql型別與go型別的對映
  • [ ] 支援自定義要進行轉換的欄位配置
  • [ ] 正規表示式優化
  • [ ] 資料表名稱複數形式與struct名稱單數形式轉換
  • [ ] 增加主鍵、索引轉換支援

Contribution

歡迎fork程式碼、提issue或者是pull request

原文地址:SQL2Struct:一款根據sql語句自動生成golang結構體的chrome外掛

相關文章