支持 Mysql、Oracle、DB2、Microsoft SQL Server、GaussDB、openGauss、PostgreSQL数据中心的数据结构获取,并依托于数据结构使用 freemarker 自定义模板生成想要的目标结果,如:
html
文件xml、yaml、properties
文件Mysql | Oracle | DB2 | Microsoft SQL Server | GaussDB | openGauss | PostgreSQL |
---|---|---|---|---|---|---|
支持 | 支持 | 计划中 | 支持 | 支持 | 支持 | 支持 |
多数据源支持
可以指定多个不同数据中心的数据源
多模板路径支持
支持文件夹、jar 文件、zip 文件、gz 文件
全局自定义属性内容
当每一个模板需要使用相同的属性内容时,可以使用全局属性内容,全局属性将传递调到每一个模板中,使用 freemarker 语法进行读取
转换函数配置能力
在进行表结构获取后,可以自主配置需要转换的内置函数进行表名、字段名等一系列的转换,如果内置函数满足不了需要,可以自定义函数
生成文件支持下载功能
当执行生成时可以使用生成并下载功能,它将提供一个压缩文件并下载到本地
kcg 是一个 spring boot 项目,要求具备 maven 3.5+、jdk17+ 环境。
进入下载页面,【下载】 ,选择所需的版本,下载对应的压缩文件,解压后进行 Step 2
下载源代码自行编译,编译后,进行Step 2
cmd 命令执行器:mvn clean package install & mvn -f kcg-dashboard/pom.xml -P release clean package install -U
PowerShell 命令执行器: mvn clean package install ; mvn -f kcg-dashboard/pom.xml -P release clean package install -U
mvn clean package install && mvn -f kcg-dashboard/pom.xml -P release clean package install -U
下载源代码,执行 maven 编码打包命令,要求具备 maven 3.5+、jdk 1.8+ 环境。
kcg 是一个 spring boot 项目,采用 yaml 文件进行工具启动配置,可配置的内容比较丰富,可以满足日常代码生成所需的大部分自定义内容,具体参考 相关配置
kcg 内置模板本身内置丰富的模板,可以使用内置模板,也可以通过使用内置模板修改为自己的业务模板(建议),如果有能力也可以自定义业务模板,模板语法参考FreeMarker 在线手册 。
模板编辑完成后需要放置在配置项
kaadog.kcg.generator.template.folder-path
对应的路径下
下载发行版本解压直接执行启动
bin/run.cmd
bin/run.sh
下载源代码,执行 maven 编码打包命令后,进入 kcg-dashboard/target/kcg-dashboard/kcg-dashboard
bin/run.cmd
bin/run.sh
dashboard 地址:http://127.0.0.1:1666/index.html
配置使用yaml进行配置,形式如:
kaadog:
kcg:
key: value
仪表盘配置采用 kaadog.kcg.dashboard
前缀,主配置项说明:
参数 | 描述 | 默认值 |
---|---|---|
api-server-path | 服务地址 | http://127.0.0.1:1666 |
file-name | 下载时生成的文件名称, 不需要后缀 | fileName |
生成器配置采用 kaadog.kcg.generator
前缀,主配置项说明:
kaadog.kcg.generator.template
模板相关配置
参数 | 描述 | 默认值 |
---|---|---|
folder-path | 模板存放的文件夹,可以使用绝对路径、相对路径、classpath:、jar 文件、zip 文件、gz文件 1、绝对路径使用程序可以访问到的磁盘地址 2、相对路径一般使用../../ 的形式,相对的程序运行的目录 3、classpath: 程序可以访问到的类路径,如: classpath:template ,会获取到当前类路径可访问到的template内所有的文件夹与文件4、jar 文件指定jar文件地址,可以使用 ! 指定使用哪个文件夹作为模板文件夹,如:xxx.jar!template ,获取当前 jar 中 template 文件夹中的模板5、zip文件、gz 文件同 jar 文件处理一致 |
|
file-suffix | 模板后缀,非此后缀不会进行模板读取,直接复制文件到输出文件夹 | .flt |
file-encoding | 模板文件编码 | UTF-8 |
out-root-folder | 生成文件输出文件夹(文件夹必须存在) | ../out |
temp-folder-path | 如果是 jar、zip 时此路径会执行解压路径(目录必须存在) | 用户临时目录+/kcg/template |
temp-folder-retain-day | 临时生成的模板保留的天数 | 1 |
kaadog.kcg.generator.properties
,自定义属性内容全局可使用,会传递调每一个模板中,使用 key=value 形式指定
kaadog.kcg.generator.data-source-configurations
,数据源配置,可以指定多个数据源,配置项说明:
参数 | 描述 | 默认值 |
---|---|---|
url | 数据库连接字符串 | 无 |
username | 用户名 | 无 |
password | 密码 | 无 |
catalog | 数据库catalog,如果数据库支持并且存在需要配置 | 无 |
schema | 数据库schema,如果数据库支持并且存在需要配置,GaussDB、oracle需要 | 无 |
properties | 数据库自定义属性内容,使用key=value形式指定 | 无 |
types | 获取结构时可以获取的类型,支持 TABLE、VIEW | TABLE、VIEW |
table-names | 可以是表名也可以是视图名称,这些表或视图来自数据源配置,按照顺序加载,后加载的会覆盖之前加载的,如果不指定会默认生成所有 | 无 |
kaadog.kcg.generator.transformFunction
,数据转换接口配置,可以指定开启的转换函数,并进行部分函数参数配置,配置项说明:
参数 | 描述 | 默认值 |
---|---|---|
class-name-camel-case-table-function.enabled | 启用类名使用驼峰命名函数配置 | true |
class-name-camel-case-table-function.searchStrs | 搜索的字符串,按照顺序搜索,设定时要注意字符串顺序 | ["t_", "t", "t-", "-t-", "-"] |
column-name-lower-case-column-function.enabled | 启用列名称转换为小写函数配置 | true |
data-type-lower-case-column-function.enabled | 启用数据类型转换为小写函数配置 | true |
field-name-camel-case-column-function.enabled | 列的属性名称使用驼峰命名函数配置 | true |
field-name-lower-case-column-function.enabled | 列的属性名称转换为小写函数配置 | true |
gauss-db-comment-table-function.enabled | GaussDB 表备注信息获取函数配置,前提条件是数据源配置使用了 gaussDB | true |
table-name-lower-case-table-function.enabled | 表名称转换为小写函数配置 | true |
kaadog.kcg.generator.dialect.types
, 方言配置,实现数据库字段类型与特点语言类型的映射关系,如果不指定数据库字段映射关系默认生成为 java String 类型(应为此工具使用 Java 开发),配置项说明:
参数 | 描述 | 默认值 |
---|---|---|
data-type | 数据库类型 | 无 |
field-type | 字段类型 | 无 |
class-name | 字段类型所使用的类名,如果指定会进行 import(非内置类型需要指定) | 无 |
value | 默认值 | 无 |
kaadog.kcg.generator.dialect.types
默认值优先级最低,可以进行配置替换,如下为默认值:
data-type | field-type | class-name | value |
---|---|---|---|
varchar | String | ||
varchar2 | String | ||
double | double | ||
number | double | ||
boolean | Boolean | Boolean.TRUE | |
integer | int | ||
int | int | ||
clob | String | ||
char | String | ||
datetime | LocalDateTime | java.time.LocalDateTime | LocalDateTime.now() |
date | LocalDateTime | java.time.LocalDateTime | LocalDateTime.now() |
longtext | String | ||
timestamp | LocalDateTime | java.time.LocalDateTime | LocalDateTime.now() |
内置模板使用 kaadog.kcg.generator.template.folder-path
按照 classpath
形式指定,如:
kaadog:
kcg:
generator:
template:
folder-path: classpath:template/db-structure
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。