最近在用golang写api,用到gorm包进行数据库操作,gorm是golang中非常流行的一个orm包,使用gorm进行数据库操作前,一般需要先用一个golang结构体对数据表字段进行映射,于是我们经常需要根据数据表中的字段名和类型来手动在go代码中写struct,有时候数据表字段很多的情况下,这种方式很耗费精力。于是便想到了写一个chrome插件,根据数据表的DDL语句来自动生成golang结构体,可以配置go结构体字段类型与mysql数据表字段类型的一个映射关系。
<h1 class="heading">SQL2Struct</h1> <blockquote>SQL2Struct是一款对golang开发者友好的chrome插件,根据在mysql中创建数据表的sql语句,自动生成golang中的struct,在golang开发者使用诸如gorm之类的框架时,可以很好的把mysql中的数据表与orm的结构体关联起来。
</blockquote>github地址:github.com/mikemintang…
<h2 class="heading">使用说明</h2> <ol><li>下载chrome扩展文件:点击下载
</li><li>安装扩展
</li></ol><figure><figcaption/></figure>
<ol><li>在mysql中获取生成数据表的sql语句</li></ol>
<code>show create table users\G;</code>
<figure><figcaption/></figure>
<ol><li>
进入插件主页面,把上一步得到的sql语句粘贴至左侧的输入框
</li><li>复制右侧生成的struct,粘贴至golang代码中即可
</li></ol><figure><figcaption/></figure>
<h2 class="heading">配置说明</h2>
目前只有三个配置项
<ul><li>gorm:开启此配置项,则生成struct的时候,每个字段都会包含类似<code>gorm:column:"id"</code>这样的信息。</li><li>json:开启此配置项,则生成struct的时候,每个字段都会包含类似<code>json:"id"</code>这样的信息。</li><li>typeMap:此配置项定义mysql数据表字段类型与go字段类型的映射关系,在数据解析的时候会安装配置的映射关系进行结构体生成。</li></ul><figure><figcaption/></figure>
<h2 class="heading">Todolist</h2> <ul><li>[ ] 支持更多的mysql类型与go类型的映射</li><li>[ ] 支持自定义要进行转换的字段配置</li><li>[ ] 正则表达式优化</li><li>[ ] 数据表名称复数形式与struct名称单数形式转换</li><li>[ ] 增加主键、索引转换支持</li></ul><h2 class="heading">Contribution</h2>
欢迎fork代码、提issue或者是pull request
原文地址:SQL2Struct:一款根据sql语句自动生成golang结构体的chrome插件