最近在用golang写api,用到gorm包进行数据库操作,gorm是golang中非常流行的一个orm包,使用gorm进行数据库操作前,一般需要先用一个golang结构体对数据表字段进行映射,于是我们经常需要根据数据表中的字段名和类型来手动在go代码中写struct,有时候数据表字段很多的情况下,这种方式很耗费精力。于是便想到了写一个chrome插件,根据数据表的DDL语句来自动生成golang结构体,可以配置go结构体字段类型与mysql数据表字段类型的一个映射关系。

前言

最近在用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. 下载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

感谢您的阅读,本文由 任想科技 版权所有。如若转载,请注明出处:任想科技(https://idoustudio.com
【分分钟上手weiphp插件开发】Vol.7——模拟请求技术在weiphp插件中的应用
基于go+vue实现的golang每日新闻数据浏览与检索平台