首页 > 其他 > 详细

Mybatis-plus代码生成器代码

时间:2021-05-25 15:28:36      阅读:21      评论:0      收藏:0      [点我收藏+]
  1 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
  2 import com.baomidou.mybatisplus.core.toolkit.StringPool;
  3 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  4 import com.baomidou.mybatisplus.generator.AutoGenerator;
  5 import com.baomidou.mybatisplus.generator.InjectionConfig;
  6 import com.baomidou.mybatisplus.generator.config.*;
  7 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
  8 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  9 
 10 
 11 import java.util.ArrayList;
 12 import java.util.List;
 13 import java.util.Scanner;
 14 
 15 /**
 16  * @Author Eric
 17  * @Date 2020/1/15 11:07
 18  */
 19 
 20 public class MyBatisPlusGenerator {
 21 
 22 
 23     public static String scanner(String tip) {
 24 
 25         Scanner scanner = new Scanner(System.in);
 26         StringBuilder help = new StringBuilder();
 27         help.append("请输入" + tip + ":");
 28         System.out.println(help.toString());
 29         if (scanner.hasNext()) {
 30             String ipt = scanner.next();
 31             if (StringUtils.isNotBlank(ipt)) {
 32                 return ipt;
 33             }
 34         }
 35         throw new MybatisPlusException("请输入正确的" + tip + "!");
 36     }
 37 
 38     public static void main(String[] args) {
 39 
 40 
 41         // 代码生成器
 42         AutoGenerator mpg = new AutoGenerator();
 43 
 44 
 45         // 全局配置
 46         GlobalConfig gc = new GlobalConfig();
 47         //项目路径
 48         String projectPath = System.getProperty("user.dir");
 49         gc.setOutputDir(projectPath + "/src/main/java");
 50         //作者
 51         gc.setAuthor("Eric");
 52         gc.setOpen(false);
 53         // gc.setSwagger2(true); 实体属性 Swagger2 注解
 54         mpg.setGlobalConfig(gc);
 55 
 56 
 57         // 数据源配置
 58         DataSourceConfig dsc = new DataSourceConfig();
 59         dsc.setUrl("jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false");
 60 
 61         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
 62         dsc.setUsername("root");
 63         dsc.setPassword("root");
 64         mpg.setDataSource(dsc);
 65 
 66         // 包配置
 67         PackageConfig pc = new PackageConfig();
 68         mpg.setPackageInfo(pc);
 69 
 70         // 自定义配置
 71         InjectionConfig cfg = new InjectionConfig() {
 72             @Override
 73             public void initMap() {
 74                 // to do nothing
 75             }
 76         };
 77 
 78         // 如果模板引擎是 freemarker
 79 //        String templatePath = "/templates/mapper.xml.ftl";
 80         // 如果模板引擎是 velocity,指定模板位置,可以自定义模板
 81         String templatePath = "/templates/mapper.xml.vm";
 82 
 83         // 自定义输出配置
 84         List<FileOutConfig> focList = new ArrayList<>();
 85         // 自定义配置会被优先输出
 86         focList.add(new FileOutConfig(templatePath) {
 87             @Override
 88             public String outputFile(TableInfo tableInfo) {
 89                 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
 90                 return projectPath + "/src/main/resources/mapper/"
 91                         + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
 92             }
 93         });
 94 
 95         cfg.setFileOutConfigList(focList);
 96         mpg.setCfg(cfg);
 97 
 98         // 配置模板
 99         TemplateConfig templateConfig = new TemplateConfig();
100 
101 
102         templateConfig.setXml(null);
103         mpg.setTemplate(templateConfig);
104 
105         // 策略配置
106         StrategyConfig strategy = new StrategyConfig();
107         strategy.setNaming(NamingStrategy.underline_to_camel);
108         strategy.setColumnNaming(NamingStrategy.underline_to_camel);
109 
110 
111         strategy.setEntityLombokModel(true);
112         strategy.setRestControllerStyle(true);
113 
114         // 写于父类中的公共字段
115         //strategy.setSuperEntityClass(BaseData.class);
116 
117 
118         strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
119         strategy.setControllerMappingHyphenStyle(true);
120         strategy.setTablePrefix("APP_");
121         mpg.setStrategy(strategy);
122         mpg.execute();
123     }
124 }

 

Mybatis-plus代码生成器代码

原文:https://www.cnblogs.com/zhujianqiang/p/14807882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!