MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
生活随笔
收集整理的這篇文章主要介紹了
MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
官方文檔
https://mp.baomidou.com/guide/generator.html?
Maven
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--MyBatis-Plus Generator--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId></dependency><!--Velocity--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.2</version></dependency>DEMO?
package com.hailiu.generator.mybatisplus;import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import java.text.SimpleDateFormat; import java.util.*;/*** MyBatis Plus 代碼生成器* @author ShenTuZhiGang* @version 1.0.2* @date 2020-03-31 17:02*/ // 演示例子,執行 main 方法控制臺輸入模塊表名回車自動生成對應項目目錄中 public class MyBatisPlusGenerator {/*** <p>* 讀取控制臺內容* </p>*/public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);String help = "請輸入" + tip + ":";System.out.println(help);if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotBlank(ipt)) {return ipt;}}throw new MybatisPlusException("請輸入正確的" + tip + "!");}public static void main(String[] args) {ResourceBundle resource = ResourceBundle.getBundle("mybatisplus-demo");// 代碼生成器AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");gc.setOutputDir(projectPath + "/src/main/java");gc.setAuthor("ShenTuZhiGang");gc.setOpen(false);gc.setSwagger2(true); //實體屬性 Swagger2 注解gc.setBaseResultMap(true); //通用查詢映射結果gc.setBaseColumnList(true); //通用查詢結果列mpg.setGlobalConfig(gc);// 數據源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl(resource.getString("datasource.url"));dsc.setSchemaName(resource.getString("datasource.schema-name"));dsc.setDriverName(resource.getString("datasource.driver-class-name"));dsc.setUsername(resource.getString("datasource.username"));dsc.setPassword(resource.getString("datasource.password"));mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setModuleName("hailiu");pc.setParent("com");pc.setEntity("model"); // 定義實體類包名mpg.setPackageInfo(pc);// 自定義配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothingMap<String, Object> map = new HashMap<>();map.put("time", new SimpleDateFormat("HH:mm").format(new Date()));map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");this.setMap(map);}};// 如果模板引擎是 freemarker//String templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocityString templatePath = "/templates/mapper.xml.vm";// 自定義輸出配置List<FileOutConfig> focList = new ArrayList<>();// 自定義配置會被優先輸出focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定義輸出文件名 , 如果你 Entity 設置了前后綴、此處注意 xml 的名稱會跟著發生變化!!return projectPath + "/src/main/resources/db/mapper" //+ pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});/*cfg.setFileCreate(new IFileCreate() {@Overridepublic boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {// 判斷自定義文件夾是否需要創建checkDir("調用默認方法創建的目錄");return false;}});*/cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);// 配置模板TemplateConfig templateConfig = new TemplateConfig();// 配置自定義輸出模板//指定自定義模板路徑,注意不要帶上.ftl/.vm, 會根據使用的模板引擎自動識別// templateConfig.setEntity("templates/entity2.java");// templateConfig.setService();// templateConfig.setController();templateConfig.setXml(null);mpg.setTemplate(templateConfig);// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);//strategy.setSuperEntityClass("你自己的父類實體,沒有就不用設置!");strategy.setEntityLombokModel(true);strategy.setRestControllerStyle(true);// 公共父類//strategy.setSuperControllerClass("你自己的父類控制器,沒有就不用設置!");// 寫于父類中的公共字段//strategy.setSuperEntityColumns("id");strategy.setInclude(scanner("表名,多個英文逗號分割").split(","));strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix(pc.getModuleName() + "_");mpg.setStrategy(strategy);//mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}}參考文章
基于mybatis-plus的代碼自動生成工具(自定義模板)
Mybatis Plus——AutoGenerator配置BaseResultMap(通用查詢映射結果)和BaseColumnList(通用查詢結果列)自動生成
總結
以上是生活随笔為你收集整理的MyBatis Plus Generator——MyBatis Plus代码生成器DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Velocity——模板中转换字符串首字
- 下一篇: MyBatis Plus Generat