版權聲明:本文爲 小異常 原創文章,非商用自由轉載-保持署名-註明出處,謝謝!
本文網址:https://blog.csdn.net/sun8112133/article/details/106917503
本篇博客主要向大家介紹 MyBatis Plus 的一種自動化代碼生成方案,這種方案叫做 逆向工程(MyBatis Plus Generator),MP 逆向工程 比 MyBatis 逆向工程好用的多,能夠自動生成實體類、Mapper、Service、ServiceImpl、Controller,它可以根據 Velocity 模板來生成實體類及各種組件。
本篇博客以一個小案例給大家講解 MP 逆向工程 。
一、引入依賴
在
pom.xml
中導入 MyBatis Plus Generator 依賴,還需要同時引入 Velocity 依賴,因爲 Velocity 是 MP 默認的模板引擎,所以需要一同引入。
<!-- MyBatis Plus Generator 依賴 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!-- Velocity 依賴 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
二、啓動類
通過運行啓動類就能自動生成所需要各種組件。
其中
System.getProperty(“user.dir”);
這句話的作用是獲取用戶當前的工作目錄。
public static void main(String[] args) {
// 創建 generator 對象(生成的對象)
AutoGenerator autoGenerator = new AutoGenerator();
// 數據源
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql:///demo?useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("123456");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
autoGenerator.setDataSource(dataSourceConfig);
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); // 設置生成的目錄
globalConfig.setOpen(false); // 生成成功後不會自動打開這個文件夾
globalConfig.setAuthor("demo"); // 生成的作者
globalConfig.setServiceName("%sService"); // Service接口去掉前面的I
autoGenerator.setGlobalConfig(globalConfig);
// 包信息
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.demo"); // 設置父包
packageConfig.setModuleName("generator");
packageConfig.setController("controller");
packageConfig.setService("service");
packageConfig.setServiceImpl("serviceImpl");
packageConfig.setMapper("mapper");
packageConfig.setEntity("entity");
autoGenerator.setPackageInfo(packageConfig);
// 配置策略
StrategyConfig strategyConfig = new StrategyConfig();
// strategyConfig.setInclude("t_user"); // 要生成的表名
strategyConfig.setEntityLombokModel(true); // 自動添加 Lombok 註解
strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 數據庫表映射到實體的命名策略,下劃線轉駝峯命名
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 數據庫表字段映射到實體的命名策略,下劃線轉駝峯命名
autoGenerator.setStrategy(strategyConfig);
// 執行
autoGenerator.execute();
}