艾逗笔

有梦想爱学习的实力派

SQL2Struct:一款根据sql语句自动生成golang结构体的chrome插件

艾逗笔's Avatar 2017-11-06 作品展示

  1. 1. 前言
  2. 2. SQL2Struct
  3. 3. 使用说明
  4. 4. 配置说明
  5. 5. Todolist
  6. 6. Contribution

前言

最近在用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地址:https://github.com/mikemintang/sql2struct

使用说明

  1. 下载源码
git clone https://github.com/mikemintang/sql2struct.git 
  1. 安装扩展

打开扩展中心,选择上一步拉取到的插件源码,本地安装插件。

  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

本文最后更新于 天前,文中所描述的信息可能已发生改变