MybatisPlus使用代碼生成器遇到的小問題(推薦)
MybatisPlus 給我們提供了更加強大的代碼生成器
MyBatisPlus 在3.0.3
版本之前使用代碼生成器因為存在默認依賴,所以不需要其他的依賴,項目中使用的是3.0.1
的版本,所以不用添加其他依賴,添加之后反倒是會報錯,實際上MP官網(wǎng)上已經(jīng)說明了這一點,只是自己沒注意才出現(xiàn)錯誤
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); // 數(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自動生成代碼
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); /**************這里請?zhí)顚懩愕膇p和你的端口號及數(shù)據(jù)庫名稱**************/ dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"); /**************您的賬號**************/ dataSourceConfig.setUsername("root"); /**************您的密碼**************/ dataSourceConfig.setPassword("root"); //您的數(shù)據(jù)庫引擎 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); //下劃線轉(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對象 AutoGenerator autoGenerator = new AutoGenerator(); //鏈接配置 autoGenerator.setDataSource(dataSource()); //全局配置 autoGenerator.setGlobalConfig(globalConfig()); //包信息 autoGenerator.setPackageInfo(packageConfig()); //配置策略 autoGenerator.setStrategy(strategyConfig()); //去吧皮卡丘 autoGenerator.execute(); }
總結(jié)
到此這篇關于MybatisPlus使用代碼生成器遇到的小問題(推薦)的文章就介紹到這了,更多相關MybatisPlus代碼生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
因BigDecimal類型數(shù)據(jù)引出的問題詳析
Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進行精確的運算,下面這篇文章主要給大家介紹了因BigDecimal類型數(shù)據(jù)引出的問題的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2018-08-08SpringCloud Eureka實現(xiàn)服務注冊與發(fā)現(xiàn)
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務,主要用于AWS云中定位服務,以實現(xiàn)中間層服務器的負載平衡和故障轉(zhuǎn)移。本文記錄一個簡單的服務注冊與發(fā)現(xiàn)實例。感興趣的小伙伴們可以參考一下2019-01-01如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率
這篇文章主要介紹了如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11Java實現(xiàn)二維數(shù)組和稀疏數(shù)組之間的轉(zhuǎn)換
本文主要介紹了Java 二維數(shù)組和稀疏數(shù)組轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-06-06IDEA關于.properties資源文件的編碼調(diào)整問題
這篇文章主要介紹了IDEA關于.properties資源文件的編碼調(diào)整問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06