mybatis-plus 程式碼生成器
阿新 • • 發佈:2021-08-05
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
package com.example.mybatisplusdemo; import com.baomidou.mybatisplus.annotation.DbType; 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; /** * @author author * @date 2021/8/3 */ public class CodeGenerator { public static void main(String[] args) { // 程式碼生成器 AutoGenerator mpg = new AutoGenerator(); // 全域性配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); // gc.setOutputDir(projectPath + "/src/main/java"); gc.setOutputDir(projectPath + "/mybatis-plus-demo/src/main/java"); // mybatis-plus-demo 是maven子模組名 gc.setAuthor("zhanglianwei"); gc.setOpen(false); gc.setServiceName("%sService"); // gc.setSwagger2(true); 實體屬性 Swagger2 註解 mpg.setGlobalConfig(gc); // 資料來源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://192.168.20.16:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setSchemaName("test"); dsc.setUsername("root"); dsc.setPassword("pwd"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 包配置 PackageConfig pc = new PackageConfig(); // pc.setModuleName(scanner("模組名")); pc.setModuleName("mybatisplusdemo"); pc.setParent("com.example"); pc.setController("controller"); pc.setEntity("domain"); pc.setService("service"); pc.setServiceImpl("service.impl"); pc.setMapper("mapper"); pc.setXml("mapper.mapper"); mpg.setPackageInfo(pc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityLombokModel(true); strategy.setRestControllerStyle(true); strategy.setInclude("student"); // 表名,可多個表名,逗號隔開 strategy.setControllerMappingHyphenStyle(true); mpg.setStrategy(strategy); mpg.execute(); } }
生成結構:
生成程式碼後,執行可能會出現 找不到 xml 的錯誤:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
解決辦法:
1、需要在pom 中新增配置 , 發現xml resource ,因為 預設資源(resource)是在 resources 資料夾下的
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build>
2、配置檔案中 application.yml 、application.properties
mybatis-plus:
mapper-locations: classpath:com/example/mybatisplusdemo/mapper/*.xml # 對映檔案位置,預設:classpath*:/mapper/**/*.xml
另外,生成的對映檔案可以複製到 resources 資料夾下,這樣 就用在pom檔案中添加發現xml的配置,但仍需要在 application.yml 、application.properties 中 配置 對映檔案的位置
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml # 對映檔案位置
https://mp.baomidou.com/guide/generator.html
mybatis-plus 程式碼生成器 和 mybatisX 等外掛 功能類似