代码生成(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 |



```java
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…) 增加过滤字段前缀