MybatisPlus使用代碼生成器遇到的小問(wèn)題(推薦)
MybatisPlus 給我們提供了更加強(qiáng)大的代碼生成器
MyBatisPlus 在3.0.3
版本之前使用代碼生成器因?yàn)榇嬖谀J(rèn)依賴,所以不需要其他的依賴,項(xiàng)目中使用的是3.0.1
的版本,所以不用添加其他依賴,添加之后反倒是會(huì)報(bào)錯(cuò),實(shí)際上MP官網(wǎng)上已經(jīng)說(shuō)明了這一點(diǎn),只是自己沒(méi)注意才出現(xiàn)錯(cuò)誤
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默認(rèn)將Velocity
作為模板引擎,同時(shí)也支持Freemarker
、Beetl
需要替換參看鏈接
這里貼一個(gè)比較簡(jiǎn)單的代碼生成器代碼
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(實(shí)體類(lèi)繼承Model)特性的請(qǐng)改為false gc.setEnableCache(false);// XML 二級(jí)緩存 gc.setBaseResultMap(true);// XML ResultMap gc.setBaseColumnList(true);// XML ColumnList gc.setAuthor("lizhan");// 作者 // 自定義文件命名,注意 %s 會(huì)自動(dòng)填充表實(shí)體屬性! gc.setControllerName("%sController"); // 默認(rèn)service接口名IXXXService 自定義指定之后就不會(huì)用I開(kāi)頭了 gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); gc.setMapperName("%sMapper"); gc.setXmlName("%sMapper"); mpg.setGlobalConfig(gc); // 數(shù)據(jù)源配置 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);// 表名生成策略(下劃線轉(zhuǎn)駝峰) 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自動(dòng)生成代碼
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配置鏈接數(shù)據(jù)源 public static DataSourceConfig dataSource() { DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL); /**************這里請(qǐng)?zhí)顚?xiě)你的ip和你的端口號(hào)及數(shù)據(jù)庫(kù)名稱(chēng)**************/ dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"); /**************您的賬號(hào)**************/ dataSourceConfig.setUsername("root"); /**************您的密碼**************/ dataSourceConfig.setPassword("root"); //您的數(shù)據(jù)庫(kù)引擎 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"); //不會(huì)默認(rèn)打開(kāi)文件夾 globalConfig.setOpen(false); //創(chuàng)建者 globalConfig.setAuthor("xxx"); //創(chuàng)建serviceImpl不會(huì)有大寫(xiě)的I globalConfig.setServiceName("%sService"); return globalConfig; } //03配置包信息 public static PackageConfig packageConfig() { PackageConfig packageConfig = new PackageConfig(); /**************父級(jí)包名**************/ packageConfig.setParent("com.xxxxx"); //父級(jí)包名稱(chēng) 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); //下劃線轉(zhuǎn)駝峰 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對(duì)象 AutoGenerator autoGenerator = new AutoGenerator(); //鏈接配置 autoGenerator.setDataSource(dataSource()); //全局配置 autoGenerator.setGlobalConfig(globalConfig()); //包信息 autoGenerator.setPackageInfo(packageConfig()); //配置策略 autoGenerator.setStrategy(strategyConfig()); //去吧皮卡丘 autoGenerator.execute(); }
總結(jié)
到此這篇關(guān)于MybatisPlus使用代碼生成器遇到的小問(wèn)題(推薦)的文章就介紹到這了,更多相關(guān)MybatisPlus代碼生成器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot+MybatisPlus+代碼生成器整合示例
- MyBatisPlus3.x中使用代碼生成器(全注釋)
- SpringBoot快速整合Mybatis、MybatisPlus(代碼生成器)實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)功能
- Java實(shí)戰(zhàn)之實(shí)現(xiàn)一個(gè)好用的MybatisPlus代碼生成器
- MybatisPlus代碼生成器的使用方法詳解
- MyBatisPlus代碼生成器的使用示例
- MybatisPlus代碼生成器含XML文件詳解
- MyBatisPlus代碼生成器的原理及實(shí)現(xiàn)詳解
- MybatisPlus代碼生成器使用示例
相關(guān)文章
因BigDecimal類(lèi)型數(shù)據(jù)引出的問(wèn)題詳析
Java在java.math包中提供的API類(lèi)BigDecimal,用來(lái)對(duì)超過(guò)16位有效位的數(shù)進(jìn)行精確的運(yùn)算,下面這篇文章主要給大家介紹了因BigDecimal類(lèi)型數(shù)據(jù)引出的問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-08-08SpringCloud Eureka實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務(wù),主要用于AWS云中定位服務(wù),以實(shí)現(xiàn)中間層服務(wù)器的負(fù)載平衡和故障轉(zhuǎn)移。本文記錄一個(gè)簡(jiǎn)單的服務(wù)注冊(cè)與發(fā)現(xiàn)實(shí)例。感興趣的小伙伴們可以參考一下2019-01-01SpringBoot HATEOAS用法簡(jiǎn)介(入門(mén))
這篇文章主要介紹了SpringBoot HATEOAS用法簡(jiǎn)介(入門(mén)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10如何使用pipeline和jacoco獲取自動(dòng)化測(cè)試代碼覆蓋率
這篇文章主要介紹了如何使用pipeline和jacoco獲取自動(dòng)化測(cè)試代碼覆蓋率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Java實(shí)現(xiàn)二維數(shù)組和稀疏數(shù)組之間的轉(zhuǎn)換
本文主要介紹了Java 二維數(shù)組和稀疏數(shù)組轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06IDEA關(guān)于.properties資源文件的編碼調(diào)整問(wèn)題
這篇文章主要介紹了IDEA關(guān)于.properties資源文件的編碼調(diào)整問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Java基礎(chǔ)類(lèi)庫(kù)之StringBuffer類(lèi)用法詳解
String類(lèi)是在所有開(kāi)發(fā)項(xiàng)目開(kāi)發(fā)之中一定會(huì)使用的一個(gè)功能類(lèi)。雖然String類(lèi)很好用,但也有弊端——內(nèi)容不允許頻繁修改,所以為了解決問(wèn)題,我們提供了StringBuffer類(lèi)。本文就來(lái)講講StringBuffer類(lèi)的用法2022-07-07SpringBoot整合第三方技術(shù)的詳細(xì)步驟
這篇文章主要介紹了SpringBoot整合第三方技術(shù),包括整合Junit、整合Mybatis、整合Mybatis-plus、整合Druid,本文通過(guò)實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03Java?RabbitMQ消息隊(duì)列詳解常見(jiàn)問(wèn)題
消息隊(duì)列是最古老的中間件之一,從系統(tǒng)之間有通信需求開(kāi)始,就自然產(chǎn)生了消息隊(duì)列。本文告訴什么是消息隊(duì)列,為什么需要消息隊(duì)列,常見(jiàn)的消息隊(duì)列有哪些,RabbitMQ的部署和使用2022-07-07