代码生成(code-gen)
背景介绍
代码生成器引入了更加灵活和高效的 builder 模式,使得开发者能够快速生成符合需求的代码,同时保持代码的优雅和整洁。这个新特性旨在进一步提升开发效率,减少重复劳动,让开发者能够更加专注于业务逻辑的实现。
数据库支持:MySql数据库 、Oracle数据库、Postgre数据库、达梦数据库、SQLServer数据库等
安装
pom 依赖
<dependency>
<groupId>com.sie.meta</groupId>
<artifactId>sie-snest-code-generator</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
快速生成 在 CodeGenerator 中的 main 方法中直接添加生成器代码,并进行相关配置,然后直接运行即可生成代码。
代码示例
FastAutoGenerator.create(ConfigUtils.load("pg.properties"))
.dataSourceConfig(builder -> {
builder.databaseQueryClass(SQLQuery.class);
})
.strategyConfig(builder -> {
builder.include("API_INFO");
})
.globalConfig(builder -> {
builder.outputDir("C:\\Users\\29662\\Documents\\dynamic-group\\src\\main\\java\\com\\sie\\snest\\dynamic\\group\\model\\");
builder.author("mijiuye");
})
.packageConfig(builder -> {
builder.parent("com.sie.snest.dynamic.group");
builder.version("1.0.0");
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();
全局配置 (GlobalConfig)
全局配置提供了对代码生成器整体行为的设置,包括输出目录、作者信息、lomback 集成、时间类型策略等。
方法说明
方法 | 说明 | 示例 |
---|---|---|
disableOpenDir() | 禁止自动打开输出目录 | 默认值:true
|
outputDir(String) | 指定代码生成的输出目录 |
/opt/baomidou 默认值: Windows:D:// Linux/Mac:/tmp
|
author(String) | 设置作者名 |
baomidou 默认值: 配置文件中的作者名 |
commentDate(String) | 设置注释日期格式 | 默认值:yyyy-MM-dd
|
示例配置 {#示例配置-1}
数据库配置 (DataSourceConfig)
基础配置
属性 | 说明 | 示例 |
---|---|---|
url | jdbc 路径 | jdbc:mysql://127.0.0.1:3306/mybatis-plus |
username | 数据库账号 | root |
password | 数据库密码 | 123456 |
DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:3306/mybatis-plus", "root", "123456").build();
可选配置
方法 | 说明 | 示例 |
---|---|---|
dbQuery(IDbQuery) | 数据库查询 | new MySqlQuery(),只在SQLQuery下生效 |
schema(String) | 数据库 schema(部分数据库适用) | mybatis-plus |
databaseQueryClass(AbstractDatabaseQuery) | 数据库查询方式 | 默认DefaultQuery.class(通用元数据), SQLQuery.class(SQL查询) |
// 使用SQL查询的方式生成代码,属于旧的代码生成方式,通用性不是好,老的代码可以继续使用,适配数据库需要完成dbQuery和typeConvert的扩展,后期不再维护这种方式
DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:3306/mybatis-plus", "root", "123456")
.dbQuery(new MySqlQuery())
.schema("mybatis-plus")
.databaseQueryClass(SQLQuery.class)
.build();
策略配置 (StrategyConfig)
策略配置是 MyBatis-Plus 代码生成器的核心部分,它允许开发者根据项目需求定制代码生成的规则,包括命名模式、表和字段的过滤、以及各个代码模块的生成策略。
方法说明
方法 | 说明 | 示例 |
---|---|---|
enableCapitalMode | 开启大写命名 | 默认值:false
|
enableSkipView | 开启跳过视图 | 默认值:false
|
disableSqlFilter | 禁用 SQL 过滤 | 默认值:true ,如果 SQL 过滤不支持,可以关闭此选项 |
enableSchema | 启用 schema | 默认值:false ,多 schema 场景时启用 |
likeTable(LikeTable) | 模糊表匹配(SQL 过滤) | 与notLikeTable 互斥,只能配置一项 |
notLikeTable(LikeTable) | 模糊表排除(SQL 过滤) | 与likeTable 互斥,只能配置一项 |
addInclude(String…) | 增加表匹配(内存过滤) | 与addExclude 互斥,只能配置一项,支持正则匹配,如^t_.* 匹配所有以t_ 开头的表名 |
addExclude(String…) | 增加表排除匹配(内存过滤) | 与addInclude 互斥,只能配置一项,支持正则匹配,如.*st$ 匹配所有以st 结尾的表名 |
addTablePrefix(String…) | 增加过滤表前缀 | |
addTableSuffix(String…) | 增加过滤表后缀 | |
addFieldPrefix(String…) | 增加过滤字段前缀 |