kcg

所属分类:自动编程
开发工具:Java
文件大小:143KB
下载次数:0
上传日期:2022-09-08 01:11:35
上 传 者sh-1993
说明:  kcg:kaadog code generator 是一个易于使用、开源、支持多数据中心的代码生成器
(Kcg: kaadog code generator is an easy-to-use, open source code generator that supports multiple data centers)

文件列表:
LICENSE (11365, 2021-11-10)
kcg-core (0, 2021-11-10)
kcg-core\pom.xml (2173, 2021-11-10)
kcg-core\src (0, 2021-11-10)
kcg-core\src\main (0, 2021-11-10)
kcg-core\src\main\java (0, 2021-11-10)
kcg-core\src\main\java\com (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\DataSourceFactory.java (17669, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\FreemarkerConfiguration.java (3016, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\GeneratorContext.java (3787, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\IGenerator.java (954, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\JDBCDataSourceGenerator.java (17199, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\TemplateContext.java (10381, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\configuration (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\configuration\DataSourceConfiguration.java (1885, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\configuration\DialectConfiguration.java (3911, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\configuration\TemplateConfiguration.java (2611, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\configuration\TransformFunctionConfiguration.java (3882, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\enums (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\enums\JdbcEnum.java (2521, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\enums\TableTypeEnum.java (730, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\env (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\env\DefaultPropertySourceEnvironmentPostProcessor.java (1492, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\exception (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\exception\DataSourceFactoryException.java (562, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\exception\FreemarkerConfigurationException.java (595, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\exception\SystemRunException.java (1868, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\exception\TemplateContextException.java (552, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\function (0, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\function\ClassNameCamelCaseTableFunction.java (2269, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\function\ColumnNameLowerCaseColumnFunction.java (1145, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\function\DataTypeLowerCaseColumnFunction.java (1137, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\function\FieldNameCamelCaseColumnFunction.java (1367, 2021-11-10)
kcg-core\src\main\java\com\kaadog\kcg\core\function\FieldNameLowerCaseColumnFunction.java (1228, 2021-11-10)
... ...

# kcg:kaadog code generator # 它能做什么 支持 Mysql、Oracle、DB2、Microsoft SQL Server、GaussDB、openGauss、PostgreSQL数据中心的数据结构获取,并依托于数据结构使用 freemarker 自定义模板生成想要的目标结果,如: - 不同开发语言的代码(java、python、c、c++、c#、.net、php、......) - 静态 `html` 文件 - 填充数据后的 `xml、yaml、properties` 文件 - 其它类结果文件 ## 数据中心支持情况 | Mysql | Oracle | DB2 | Microsoft SQL Server | GaussDB | openGauss | PostgreSQL | | ----- | ------ | ------ | -------------------- | ------- | --------- | ---------- | | 支持 | 支持 | 计划中 | 支持 | 支持 | 支持 | 支持 | # kcg 主要功能 - 多数据源支持 可以指定多个不同数据中心的数据源 - 多模板路径支持 支持文件夹、jar 文件、zip 文件、gz 文件 - 全局自定义属性内容 当每一个模板需要使用相同的属性内容时,可以使用全局属性内容,全局属性将传递调到每一个模板中,使用 freemarker 语法进行读取 - 转换函数配置能力 在进行表结构获取后,可以自主配置需要转换的内置函数进行表名、字段名等一系列的转换,如果内置函数满足不了需要,可以自定义函数 - 生成文件支持下载功能 当执行生成时可以使用生成并下载功能,它将提供一个压缩文件并下载到本地 # 开始使用 ## Step 1: 获取工具 kcg 是一个 **spring boot** 项目,要求具备 **maven 3.5+、jdk1.8+** 环境。 ### 方式一: 进入下载页面,[【下载】](https://github.com/cwmchen/kcg/releases) ,选择所需的版本,下载对应的压缩文件,解压后进行 `Step 2` ### 方式二: 下载源代码自行编译,编译后,进行`Step 2` #### windows 编译指令 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` #### linux 编译指令 `mvn clean package install && mvn -f kcg-dashboard/pom.xml -P release clean package install -U ` > 下载源代码,执行 maven 编码打包命令,要求具备 maven 3.5+、jdk 1.8+ 环境。 ## Step 2:工具配置 kcg 是一个 **spring boot** 项目,采用 yaml 文件进行工具启动配置,可配置的内容比较丰富,可以满足日常代码生成所需的大部分自定义内容,具体参考 [相关配置](#相关配置) ## Step 3:配置模板 kcg 内置模板本身内置丰富的模板,可以使用内置模板,也可以通过使用内置模板修改为自己的业务模板(建议),如果有能力也可以自定义业务模板,模板语法参考[FreeMarker 在线手册](http://freemarker.foofun.cn/) 。 > 模板编辑完成后需要放置在配置项 `kaadog.kcg.generator.template.folder-path` 对应的路径下 ## Step 4:启动项目 ### 方式一: 下载发行版本解压直接执行启动 - windows 双击运行或右键以管理员身份运行 `bin/run.cmd` - linux 运行 `bin/run.sh` ### 方式二: 下载源代码,执行 maven 编码打包命令后,进入 `kcg-dashboard/target/kcg-dashboard/kcg-dashboard` - windows 双击运行或右键以管理员身份运行 `bin/run.cmd` - linux 运行 `bin/run.sh` ## Step 5:访问生成地址 dashboard 地址:`http://127.0.0.1:1666/index.html` # 相关配置 配置使用yaml进行配置,形式如: ```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` 形式指定,如: ```yaml kaadog: kcg: generator: template: folder-path: classpath:template/db-structure ``` 1. kcg-template-db-structure:用于生成数据中心结构 2. kcg-template-necs:用于生成 spring cloud 工程模块 # roadmap - 完善数据中心适配 - 开发 dashboard 仪表盘 - 支持数据源手动维护 - 支持动态选择要生成的表 - 支持可以上传模板文件 - 支持自定义表结构

近期下载者

相关文件


收藏者