代码生成器mybatis-plus-generator新版本3.5.0新写法


由于mybatis-plus-generator升级到了3.5.0,很多api发生了一些改变,一下是我总结的一些写法

pom依赖 另需额外导入web、test场景和Lombok依赖

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>

代码生成器 测试类
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.IFill;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.fill.Property;
import com.edu.hqg.EduMain8101;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;

/**
* 相关依赖
* 1.mybatis-plus-boot-starter
* 2.mybatis-plus-generator
* 3.velocity-engine-core
*/

@SpringBootTest(classes = EduMain8101.class)
public class Generator {

@Autowired
private DataSource dataSource;

//需要配置
private final String author = "HQG"; //作者
private final String packageName = "com.edu.hqg"; //项目主路径包名(com.boot01.test01)
private final String dbTables = ""; //需要生成的表名
private final Boolean enableSwagger = false; //是否开启Swagger

@Test
public void main() {

// 1.数据源配置
DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig.Builder(dataSource);

// 2.全局配置
GlobalConfig.Builder globalConfigBuilder = new GlobalConfig.Builder();
// 代码生成目录
String projectPath = System.getProperty("user.dir");
globalConfigBuilder.outputDir(projectPath + "/src/main/java");
// 作者
globalConfigBuilder.author(author);
// 结束时是否打开文件夹
globalConfigBuilder.openDir(false);

// 实体属性Swagger2注解
if (enableSwagger){
globalConfigBuilder.enableSwagger();
}

// 3.包配置
PackageConfig.Builder packageConfigBuilder = new PackageConfig.Builder();
packageConfigBuilder.parent(packageName); //项目包名

//都有默认值 配置实体、mapper、service、controller的包名
//packageConfigBuilder.entity("entity");

// 4.策略配置
StrategyConfig.Builder strategyConfigBuilder = new StrategyConfig.Builder();
// 设置需要映射的表名 用逗号分割
strategyConfigBuilder.addInclude(dbTables.split(","));
// 下划线转驼峰
strategyConfigBuilder.entityBuilder().naming(NamingStrategy.underline_to_camel);
strategyConfigBuilder.entityBuilder().columnNaming(NamingStrategy.underline_to_camel);
// entity的Lombok
strategyConfigBuilder.entityBuilder().enableLombok();
// 逻辑删除
strategyConfigBuilder.entityBuilder().logicDeleteColumnName("deleted");
strategyConfigBuilder.entityBuilder().logicDeletePropertyName("deleted");
// 自动填充
// 创建时间
IFill gmtCreate = new Property("gmt_create", FieldFill.INSERT);
// 更新时间
IFill gmtModified = new Property("gmt_modified", FieldFill.INSERT_UPDATE);
strategyConfigBuilder.entityBuilder().addTableFills(gmtCreate, gmtModified);
// 乐观锁
strategyConfigBuilder.entityBuilder().versionColumnName("version");
strategyConfigBuilder.entityBuilder().versionPropertyName("version");
// 使用RestController
strategyConfigBuilder.controllerBuilder().enableRestStyle();
// 将请求地址转换为驼峰命名,如 http://localhost:8080/hello_id_2
strategyConfigBuilder.controllerBuilder().enableHyphenStyle();

// 创建代码生成器对象,加载配置 对应1.2.3.4步
AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfigBuilder.build());
autoGenerator.global(globalConfigBuilder.build());
autoGenerator.packageInfo(packageConfigBuilder.build());
autoGenerator.strategy(strategyConfigBuilder.build());

// 执行
autoGenerator.execute();
}
}
 





免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM