MyBatis-Plus 代碼自動生成器
## 1、介紹
MyBatis-Plus CodeGenerator 代碼自動生成器,可以根據使用者的配置,去數據庫中根據每一個數據表自動生成對應的 Controller、Service、ServiceImpl、Mapper、Entity 等繁瑣且沒有技術含量的事情,提高開發效率。
## 2、導入依賴
<dependencies>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mybatis-plus-generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.3.4.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- mysql 驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 模板引擎 默認 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!-- 以上為 MyBatis-Plus 生成代碼的依賴 -->
<!-- 以下為 基本 SpringBoot 的搭建 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- lombox -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>compile</scope>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
<!-- 生成代碼所需要的插件插件 -->
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<classpathScope>test</classpathScope>
</configuration>
</plugin>
</plugins>
</build>
## 3、配置類
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class CodeGenerator {
@Test
public void genCode() {
// 1、創建代碼生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
// 項目輸出根目錄
gc.setOutputDir(projectPath + "/src/main/java");
// 作者
gc.setAuthor("lishihuai");
//生成后是否打開資源管理器
gc.setOpen(false);
//去掉Service接口的首字母I
gc.setServiceName("%sService");
//主鍵策略
gc.setIdType(IdType.AUTO);
//開啟Swagger2模式
gc.setSwagger2(true);
mpg.setGlobalConfig(gc);
// 3、數據源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.200.128:3306/gmall_product?serverTimezone=GMT%2B8&characterEncoding=utf-8");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
// 生成的文件放在那個目錄下 若沒有該文件 則會創建
pc.setParent("com.alibaba.product");
//此對象與數據庫表結構一一對應,通過 DAO 層向上傳輸數據源對象。
pc.setEntity("pojo.entity");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
//數據庫表映射到實體的命名策略
strategy.setNaming(NamingStrategy.underline_to_camel);
//數據庫表字段映射到實體的命名策略
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// lombok
strategy.setEntityLombokModel(true);
//邏輯刪除字段名
strategy.setLogicDeleteFieldName("is_deleted");
//去掉布爾值的is_前綴(確保tinyint(1))
strategy.setEntityBooleanColumnRemoveIsPrefix(true);
//restful api風格控制器
strategy.setRestControllerStyle(true);
mpg.setStrategy(strategy);
// 6、執行
mpg.execute();
}
}
4、執行測試類、生成代碼
> 執行生成前:
執行的配置類
> 執行生成后的文件結構
5、最終效果:
### Controller
### Service
ServiceImpl
Mapper
XML
北冥寒霜
2021年9月2日14:13:49