MybatisPlus使用代碼生成器遇到的小問題(推薦)
MybatisPlus 給我們提供了更加強大的代碼生成器
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);
// 執(zhí)行生成
mpg.execute();
}
}
PS:下面看下MybatisPlus自動生成代碼
POM依賴
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version></version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version></version> </dependency>
樣板代碼
//01配置鏈接數據源
public static DataSourceConfig dataSource() {
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
/**************這里請?zhí)顚懩愕膇p和你的端口號及數據庫名稱**************/
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");
/**************您的賬號**************/
dataSourceConfig.setUsername("root");
/**************您的密碼**************/
dataSourceConfig.setPassword("root");
//您的數據庫引擎
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
return dataSourceConfig;
}
//02配置全局
public static GlobalConfig globalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
/**************路徑**************/
globalConfig.setOutputDir("X:\\xxx\\" + "/src/main/java");
//不會默認打開文件夾
globalConfig.setOpen(false);
//創(chuàng)建者
globalConfig.setAuthor("xxx");
//創(chuàng)建serviceImpl不會有大寫的I
globalConfig.setServiceName("%sService");
return globalConfig;
}
//03配置包信息
public static PackageConfig packageConfig() {
PackageConfig packageConfig = new PackageConfig();
/**************父級包名**************/
packageConfig.setParent("com.xxxxx");
//父級包名稱
packageConfig.setModuleName("generator");
packageConfig.setController("controller");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
packageConfig.setMapper("mapper");
packageConfig.setEntity("entity");
return packageConfig;
}
//04配置策略
public static StrategyConfig strategyConfig(){
StrategyConfig strategyConfig = new StrategyConfig();
//添加lombok
strategyConfig.setEntityLombokModel(true);
//下劃線轉駝峰
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
//同上
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
/**************要生成的表名**************/
strategyConfig.setInclude("xxx");
return strategyConfig;
}
public static void main(String[] args) {
//創(chuàng)建generator對象
AutoGenerator autoGenerator = new AutoGenerator();
//鏈接配置
autoGenerator.setDataSource(dataSource());
//全局配置
autoGenerator.setGlobalConfig(globalConfig());
//包信息
autoGenerator.setPackageInfo(packageConfig());
//配置策略
autoGenerator.setStrategy(strategyConfig());
//去吧皮卡丘
autoGenerator.execute();
}
總結
到此這篇關于MybatisPlus使用代碼生成器遇到的小問題(推薦)的文章就介紹到這了,更多相關MybatisPlus代碼生成器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringCloud Eureka實現服務注冊與發(fā)現
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務,主要用于AWS云中定位服務,以實現中間層服務器的負載平衡和故障轉移。本文記錄一個簡單的服務注冊與發(fā)現實例。感興趣的小伙伴們可以參考一下2019-01-01
如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率
這篇文章主要介紹了如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11

