背景
本来 是专门为 来编写的一块代码生成器,后来在编写时并没有局限于了
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方式不用配置数据库信息?
方式是通过配置的 以及数据库连接驱动获取数据库连接对象 后来操作 。
而 方式则是直接使用项目中配置的 对象实例来进行获取的 数据库连接对象后来操作 。
注意:如果你是多数据源项目,默认会使用 数据源实例。
领取专属 10元无门槛券
私享最新 技术干货