首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开源:Code-Builder代码生成工具

背景

本来 是专门为 来编写的一块代码生成器,后来在编写时并没有局限于了

code-builder可以用来做什么?

是一款代码生成 插件,通过简单的配置就可以完成数据库内 转换 或者其他实体类,想怎么生成完全根据你的个人业务逻辑, 尽可能的完善的提供数据库内的一些定义的信息,让你更方便更灵活的来生成 文件。

源码位置

:https://gitee.com/hengboy/code-builder

:https://github.com/hengyuboy/code-builder

使用环境

构建的项目

以上版本

实现方式

是怎么获取到的数据库信息?

内部采用了 的 元数据的方式来获取数据库内 、 等信息, 是不局限于任何的数据库类型的,所以 在基础设计上是可以在任何数据库类型中来完成它的生成任务的,不过初版本仅支持了 、 这两种数据库类型,在 后期更新版本中会把主流的数据库进行添加。

生成模板选型

目前 内部采用了 模板来完成实体类的自动生成,模板由使用者来自定义编写,内部预留了使用其他模板的方式,如果你需要使用别的模板,如: ,对应添加生成的实现业务逻辑即可。

怎么配置?

SpringBoot 方式配置

在 版本添加了集成 的 ,依赖如下所示:

使用 构建工具时,复制下面的内容到 配置文件内

如果你是用的 构建工具,那么复制下面的内容到你的

那么我们在 或者 配置文件内该怎么配置相关的参数呢?

每个参数的具体介绍请往下看。

Maven Plugin 方式配置

由于 是 插件的形式创建的,所以我们只需要在项目的 文件内添加 插件配置,如下所示:

数据库驱动依赖添加

不局限你使用的数据库类型,所以在生成时需要使用者添加对应数据类型的依赖,如上面的配置中则是添加了 数据库的依赖

生成的控制开关

并不是每一次的 或者 时都需要生成对应的实体,针对这种情况 添加了 参数来控制开启与关闭。

:开启自动生成

:关闭自动生成

数据库类型配置

执行自动生成前需要配置数据库的相关配置信息

:数据库类型,默认使用 数据库类型。

:数据库驱动类名,根据不用的数据库类型配置不同的驱动类名,默认根据 使用内部定义的类名,如需自定义可以设置。

数据库基本信息配置 (仅maven-plugin使用)

:数据库名称

:数据库用户名

:数据库密码

:数据库连接路径,连接路径不需要填写数据库名,正确示例如:

生成表名符合规则的表

根据表达式来创建表,表达式与模糊查询语句表达式一般无二,配置 参数并设置对应的表达式就可以根据表达式来匹配出参与生成的 列表。

指定前缀匹配

示例:将会匹配出 、 等表。

指定后缀匹配

示例:将会匹配出 、 等表。

包含匹配

示例:将会匹配出 、 等表。

生成指定表

支持指定单个或者多个表来生成,只需要配置 参数即可,如下所示:

上面的配置是本次生成仅操作 、 两张表。

注意: 参数的优先级要高于 参数。

自定义builder所需模板路径

会自动去找 下的模板,如果使用默认的 模板来生成,那么模板所存放的位置为 。如果你想自定义模板的路径可以设置 的地址,在这里因为考虑到了不同操作系统的分隔符不一样( 系统分隔符 , 以及 分隔符为 )所以这里采用 分隔符配置, 会自动根据操作系统来转换路径,配置如下所示:

注意: 文件夹不允许修改,只能修改 加载模板的根路径。

排除生成实体后的前缀

数据库设计有时需要添加前缀,如: 、 等,实际生成实体后前缀则是并不想展示,那么配置参数 就可以自动排除前缀,如下所示:

注意:由于替换生成后的类名称所以这里要准守驼峰命名规则首字母大写,一次只能配置一个替换前缀。

使用前 ,使用后 。

模板配置

使用 标签配置自定义的模板列表,一次可以使用单个或者多个模板进行生成,如下配置:

: 目录下模板的名称,

:生成该模板文件后的子包名称,

:生成文件的后缀,如:配置后缀为 ,则添加后缀后的文件名为 ,后缀首字母会自动根据驼峰转换成大写

内置参数

模板驱动数据模型内置了部分参数, 准备的每一个参数都是在生成实体类时都可能会用到的。

Table参数

,数据类型:

,数据类型:

,如: 转换为 ,数据类型:

,数据类型:

,数据类型:

是否存在 类型, :存在, :不存在,数据类型:

是否存在 类型, :存在, :不存在,数据类型:

是否存在 类型, :存在, :不存在,数据类型:

使用方式

: ,如表名的使用为

Column参数

,如: ,数据类型:

,数据类型: , :主键, :非主键

,数据类型: , :外键, :非外键

,数据类型:

,数据类型:

,数据类型: , :为空, :非空

,数据类型: , :自增列, :普通列

,数据类型:

,数据类型:

,对应 内类型,数据类型:

,数据类型:

,如: ,数据类型:

,如: ,数据类型:

,如: ,数据类型:

使用方式

: ,如列名的使用为

基础参数

:Class名称,freemarker指定模板生成文件的类名,模板内配置 使用

:Package名称,freemarker指定模板生成文件的包名,模板内配置 使用

怎么自定义模板?

下面提供一个简单的模板示例,根据上面的 可以任意自定义生成文件的内容。

上面是一个数据实体的 模板内容,把这个模板存放到 目录下,对应在 标签内添加配置就可以完成数据实体的自动创建,创建后的数据实体内容如下所示:

创建的实体类去了哪里?

创建的实体类会在 目录下,如果你配置 参数,会自动在生成目录下创建 配置值的子目录。如:

则最终创建的生成根目录为:

怎么使用?

SpringBoot 方式使用

就可以根据配置生成对应的文件

Maven Plugin 方式使用

执行 命令用于清空 目录下的内容

执行 命令编译项目并且生成

为什么SpringBoot方式不用配置数据库信息?

方式是通过配置的 以及数据库连接驱动获取数据库连接对象 后来操作 。

而 方式则是直接使用项目中配置的 对象实例来进行获取的 数据库连接对象后来操作 。

注意:如果你是多数据源项目,默认会使用 数据源实例。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180722G0EQ6V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券