MyBatisPlus 在3.0.3
版本之前使用代碼生成器因為存在默認依賴,所以不需要其他的依賴,項目中使用的是3.0.1
的版本,所以不用添加其他依賴,添加之后反倒是會報錯,實際上MP官網上已經說明了這一點,只是自己沒注意才出現錯誤
3.0.3
版本之后就需要添加如下依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>
MP默認將Velocity
作為模板引擎,同時也支持Freemarker
、Beetl
需要替換參看鏈接
這里貼一個比較簡單的代碼生成器代碼
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;
public class CodeGeneration {
/**
*
* @Title: main
* @Description: 生成
* @param args
*/
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir("D:\\generation");//輸出文件路徑
gc.setFileOverride(true); // 是否文件覆蓋
gc.setActiveRecord(false);// 不需要ActiveRecord(實體類繼承Model)特性的請改為false
gc.setEnableCache(false);// XML 二級緩存
gc.setBaseResultMap(true);// XML ResultMap
gc.setBaseColumnList(true);// XML ColumnList
gc.setAuthor("lizhan");// 作者
// 自定義文件命名,注意 %s 會自動填充表實體屬性!
gc.setControllerName("%sController");
// 默認service接口名IXXXService 自定義指定之后就不會用I開頭了
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
mpg.setGlobalConfig(gc);
// 數據源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("xxx");
dsc.setPassword("xxx");
dsc.setUrl("jdbc:mysql://localhost:3306/xxx");
mpg.setDataSource(dsc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
// strategy.setTablePrefix(new String[] { "sys_" });// 此處可以修改為您的表前綴
strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略(下划線轉駝峰)
strategy.setInclude("user"); // 需要生成的表名
strategy.setSuperServiceClass(null);
strategy.setSuperServiceImplClass(null);
strategy.setSuperMapperClass(null);
mpg.setStrategy(strategy);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.xxx");
pc.setController("controller");
pc.setService("service");
pc.setServiceImpl("impl");
pc.setMapper("mapper");
pc.setEntity("entity");
pc.setXml("xml");
mpg.setPackageInfo(pc);
// 執行生成
mpg.execute();
}
}