MyBatisPlus的程式碼生成器模板(IDEA+MAVEN)
阿新 • • 發佈:2021-08-19
與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(); } }
最後執行程式碼即可
生成結果如下所示