MybatisPlus 快速生成實體類和專案模板
阿新 • • 發佈:2022-04-01
在專案對資料庫表設計完成後,可以通過MybatisPlus根據資料庫錶快速生成實體類、mapper層以及service層、controller層的模板。具體方法如下:
1、導包
<!-- MybtaisPlus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.3.4</version> </dependency> <!-- 程式碼生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version> </dependency> <!--模板引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency> <!-- 日誌介面實現--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> <scope>compile</scope> </dependency>
2、根據需求設計並建立資料庫
略
3、編寫自動生成類並對生成器進行配置
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:spring.xml") public class Generator { @Autowired DataSource ds; @Test public void testGenerator() { // 全域性配置 GlobalConfig config = new GlobalConfig(); config.setActiveRecord(false) // AR模式 .setAuthor("作者") // 作者 .setOutputDir(System.getProperty("user.dir") + "/src/main/java") // 生成路徑 .setFileOverride(true) // 檔案覆蓋 .setIdType(IdType.AUTO) // 主鍵策略 .setServiceName("%sService"); // 設定生成的service介面的名字,預設為I%sSerice // 資料來源配置 DataSourceConfig dsConfig = new DataSourceConfig(); dsConfig.setDbType(DbType.MYSQL) // 設定資料庫型別 .setDriverName("com.mysql.cj.jdbc.Driver") .setUrl("jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf8") .setUsername("root") .setPassword("123456"); // 策略配置 StrategyConfig stConfig = new StrategyConfig(); stConfig.setCapitalMode(true) // 全域性大寫命名 .setNaming(NamingStrategy.underline_to_camel); // 資料庫表對映到實體的命名策略 // 包名配置 PackageConfig pkConfig = new PackageConfig(); pkConfig.setParent("com.miz") .setMapper("dao") .setService("service") .setController("controller") .setEntity("entity") .setXml("dao.mapper"); // 整合 AutoGenerator ag = new AutoGenerator(); ag.setGlobalConfig(config).setDataSource(dsConfig).setStrategy(stConfig).setPackageInfo(pkConfig); // 生成 ag.execute(); } }