在线sql转自定义模型代码工具 | 快速解析多数据库表结构与多重定制 - GoTool在线工具集

开发工具指南

在线的sql转自定义模型代码生成工具。一键快速解析MySQL、PostgreSQL、Oracle等数据库DL表结构与注释,自动转换为标准代码模型,不仅支持定制化字段过滤,也能为您的日常应用开发显著节省构建成本。

使用说明

功能介绍

1.支持多种数据库的建表 sql转自定义模型, 其中包含(pg、oracle、mysql)等数据库; 建表语句, 建表语句, 建表语句(重要的说3遍)
2.在转换 sql 的时候, 需要确认下是否需要切换处理类型, 暂时支持3种处理方式(normal, postgresql, oracle), 默认: normal.
3.支持自定义过滤不需要的字段, 多个字段通过 , 隔开 说明: 不能在 sql 中包含注释内容(即: -- xxx# xxx); 由于此工具是通过 ; 来分割语句处理. 所以 normal 状态下可以同时处理多个建表语句; postgresqloracle 由于需要解析注释, 只支持单个建表语句.

模板说明

会用到的语法说明
  • if 条件
{{if 条件}}
  // 条件成立时执行
{{else if 另一条件}}
  // 另一条件成立时执行
{{else}}
  // 以上条件都不成立时执行
{{end}}

// 关系符
eq      如果arg1 == arg2则返回真
ne      如果arg1 != arg2则返回真
lt      如果arg1 < arg2则返回真
le      如果arg1 <= arg2则返回真
gt      如果arg1 > arg2则返回真
ge      如果arg1 >= arg2则返回真
  • 示例:
{{if .IsAdmin}}
  <p>欢迎管理员</p>
{{else}}
  <p>欢迎普通用户</p>
{{end}}
  • for 遍历
// 遍历
{{- range 变量 }}
  // 遍历元素
{{- end }}

// 带索引的遍历 
{{- range $index, $user := .Users }}
  <p>{{$index}}: {{$user.Name}} ({{$user.Age}}岁)</p>
{{- end }}
  • 说明: {{- range }}- 是用于清空换行或空白符

  • 示例

<ul>
  {{- range .Users }}
    <li>{{.Name}} - {{.Age}} 岁</li>
  {{- end }}
</ul>

模板介绍

  • 字段介绍
字段 说明 类型
TableName 表名 string
TableComment 表注释 string
Fields 字段名 objects
    No 序号 int
    NotNull 不为空 bool
    AutoIncrement 自增 bool
    PrimaryKey 主键 bool
    Name 字段名 string
    ModelType 模型字段类型 string
    DbType 数据库字段类型 string
    Comment 注释 string
    Default 默认值 string
  • 函数介绍
函数名 说明 示例
addLine 追加换行符
toFirstUpper 首字母大写
toFirstUpper 首字母大写
toFirstLower 首字母小写
sub 求差
hump 将db字段按驼峰处理 hump test_a 处理后 TestA
len 长度

示例模板

  • sql转struct
type {{ hump .TableName }} struct {
{{- range  .Fields }}
    {{ hump .Name }} {{ .ModelType }} `json:"{{ .Name }}"`  {{ if .Comment }} // {{ .Comment }} {{ end }}
{{- end }}
}

示例

mysql 建表语句
CREATE TABLE if not exists user (
  id int NOT NULL AUTO_INCREMENT,
  name varchar(10) NOT NULL COMMENT '姓名',
  gender tinyint NOT NULL DEFAULT 0 COMMENT '性别 0-未知 1-男 2-女',
  age int NOT NULL COMMENT '年龄',
  created_date datetime DEFAULT CURRENT_TIMESTAMP,
  updated_date datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
);

处理后

type User struct {
    Id int `json:"id"`  
    Name string `json:"name"`   // 姓名 
    Gender int `json:"gender"`   // 性别 0-未知 1-男 2-女 
    Age int `json:"age"`   // 年龄 
    CreatedDate string `json:"created_date"`  
    UpdatedDate string `json:"updated_date"`  
}