與MBG的區別
MyBatis 的代碼生成器可生成: 實體類、Mapper 接口、Mapper 映射文件
MP 的代碼生成器可生成: 實體類(可以選擇是否支持 AR)、Mapper 接口、Mapper 映射文件、 Service 層、Controller 層.
相比MBG,MP只需要進行純Java代碼的編寫即可生成代碼
MP生成器步驟
注:此處使用的是2.3版本的mybatis-plus,MySQL使用的是8.0.20版本
導入依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.3</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--c3p0-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
<!--Apache velocity
MP 的代碼生成器默認使用的是 Apache 的 Velocity 模板
-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<!--slf4j
查看日志輸出信息
-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
Java測試代碼模板
import com.baomidou.mybatisplus.enums.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.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;
public class TestMP {
/**
* 代碼生成 示例代碼
*/
@Test
public void testGenerator(){
//1.全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true) //是否支持AR模式
.setAuthor("blank") //作者
.setOutputDir("項目根路徑的絕對路徑\\src\\main\\java") //生成路徑
.setFileOverride(true) //文件覆蓋
.setIdType(IdType.AUTO) //主鍵策略
.setServiceName("%sService") //設置生成的service接口的名字的首字母是否為I(IEmployeeService),此處為不設置首字母為I
.setBaseResultMap(true) //SQL映射文件中生成的
.setBaseColumnList(true);
//2.數據源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL) //設置數據庫類型
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/數據庫名?serverTimezone=UTC")
.setUsername("用戶名")
.setPassword("密碼");
//3.策略配置
StrategyConfig stConfig = new StrategyConfig();
stConfig.setCapitalMode(true) //開啟全局大寫命名
.setDbColumnUnderline(true) //指定表明 字段名是否使用下划線
.setNaming(NamingStrategy.underline_to_camel) //數據庫表映射到實體的命名策略
.setTablePrefix("tbl_")
.setInclude("tbl_employee"); //指定需要生成代碼的數據庫表
//4.包名策略配置
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent("com.atguigu.mp")
.setMapper("mapper")
.setService("service")
.setController("controller")
.setEntity("beans")
.setXml("mapper");
//5.整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setPackageInfo(pkConfig);
//6.執行
ag.execute();
}
}
最后執行代碼即可
生成結果如下所示