代碼生成器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