1. package com.kyplatform.generator;
  2.  
  3. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
  4. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  5. import com.baomidou.mybatisplus.generator.AutoGenerator;
  6. import com.baomidou.mybatisplus.generator.config.*;
  7. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  8.  
  9. import java.util.Scanner;
  10.  
  11. /**
  12. * mybatis代码生成器
  13. */
  14. public class CodeGenerator {
  15. /**
  16. * <p>
  17. * 读取控制台内容
  18. * </p>
  19. */
  20. public static String scanner(String tip) {
  21. Scanner scanner = new Scanner(System.in);
  22. StringBuilder help = new StringBuilder();
  23. help.append("请输入" + tip + ":");
  24. System.out.println(help.toString());
  25. if (scanner.hasNext()) {
  26. String ipt = scanner.next();
  27. if (StringUtils.isNotEmpty(ipt)) {
  28. return ipt;
  29. }
  30. }
  31. throw new MybatisPlusException("请输入正确的" + tip + "!");
  32. }
  33.  
  34. public static void main(String[] args) {
  35. // 代码生成器
  36. AutoGenerator mpg = new AutoGenerator();
  37.  
  38. // 全局配置
  39. GlobalConfig gc = new GlobalConfig();
  40. String projectPath = System.getProperty("user.dir");
  41. gc.setOutputDir(projectPath + "/src/main/java");//生成文件的输出目录
  42. gc.setAuthor("zhicaili");//开发人员
  43. gc.setOpen(true);//是否打开输出目录
  44. gc.setServiceName("%sService");//service 命名方式
  45. gc.setServiceImplName("%sServiceImpl");//service impl 命名方式
  46. // 自定义文件命名,注意 %s 会自动填充表实体属性!
  47. gc.setMapperName("%sMapper");
  48. gc.setXmlName("%sMapper");
  49. gc.setFileOverride(true);
  50. gc.setActiveRecord(true);
  51. gc.setEnableCache(false);// XML 二级缓存
  52. gc.setBaseResultMap(true);// XML ResultMap
  53. gc.setBaseColumnList(false);// XML columList
  54. mpg.setGlobalConfig(gc);
  55.  
  56. // 数据源配置
  57. DataSourceConfig dsc = new DataSourceConfig();
  58. dsc.setUrl("jdbc:mysql://127.0.0.1:3306/xxxxx?useUnicode=true&useSSL=false&characterEncoding=utf8");
  59. // dsc.setSchemaName("public"); 数据库 schema name
  60. dsc.setDriverName("com.mysql.jdbc.Driver");
  61. dsc.setUsername("root");
  62. dsc.setPassword("******");
  63. mpg.setDataSource(dsc);
  64.  
  65. // 包配置
  66. PackageConfig pc = new PackageConfig();
  67. //pc.setModuleName(scanner("模块名"));//父包模块名
  68. pc.setParent("com.kyplatform.admin");//父包名。// 自定义包路径 如果为空,将下面子包名必须写全部, 否则就只需写子包名
  69. pc.setEntity("pojo");
  70. pc.setService("service");
  71. pc.setServiceImpl("service.impl");
  72. pc.setController("controller");//设置控制器包名
  73. mpg.setPackageInfo(pc);
  74.  
  75. // 自定义配置
  76. /* InjectionConfig cfg = new InjectionConfig() {
  77. @Override
  78. public void initMap() {
  79. // to do nothing
  80. }
  81. };
  82. List<FileOutConfig> focList = new ArrayList<>();
  83. focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
  84. @Override
  85. public String outputFile(TableInfo tableInfo) {
  86. // 自定义输入文件名称
  87. return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
  88. + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
  89. }
  90. });*/
  91. /* cfg.setFileOutConfigList(focList);
  92. mpg.setCfg(cfg);*/
  93. mpg.setTemplate(new TemplateConfig().setXml(null));
  94.  
  95. // 策略配置
  96. StrategyConfig strategy = new StrategyConfig();
  97. strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
  98. strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略, 未指定按照 naming 执行
  99. // strategy.setSuperEntityClass("com.baomidou.ant.common.BaseEntity");//自定义继承的Entity类全称,带包名
  100. strategy.setEntityLombokModel(true);//【实体】是否为lombok模型(默认 false)
  101. strategy.setRestControllerStyle(true);//生成 @RestController 控制器
  102. //strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");//自定义继承的Controller类全称,带包名
  103. strategy.setInclude("tb_user","tb_organization","tb_person","tb_signin","tb_sys_config","tb_sys_log");//需要包含的表名,允许正则表达式
  104. //strategy.setSuperEntityColumns("id");//自定义基础的Entity类,公共字段
  105. strategy.setControllerMappingHyphenStyle(true);//驼峰转连字符
  106. strategy.setTablePrefix("tb_");//表前缀
  107. mpg.setStrategy(strategy);
  108. //mpg.setTemplateEngine(new FreemarkerTemplateEngine());
  109. mpg.execute();
  110. }
  111.  
  112. }

Mybatis-Plus 3.0代码生成器的更多相关文章

  1. mybatis plus3.1.0 热加载mapper

    今天又开始写业务代码了,每次修改SQL都要重启服务,实在是浪费时间. 想起之前研究过的<mybatis plus3.1.0 热加载mapper>,一直没有成功,今天静下心来分析了问题,终于 ...

  2. springboot项目war包部署及出现的问题Failed to bind properties under 'mybatis.configuration.mapped-statements[0].

    1.修改pom文件 修改打包方式 为war: 添加tomcat使用范围,provided的意思即在发布的时候有外部提供,内置的tomcat就不会打包进去 <groupId>com.scho ...

  3. mybatis入门篇:代码生成器(MyBatis Generator)

    这篇文章只是按照自己的需要去配置代码生成器,未对所有配置进行讲解,需要了解具体详情的,请到官网查阅文档.传送门:http://www.mybatis.org/generator/ 1.首先引入相关的依 ...

  4. spring整合mybatis,springMVC的0配置文件方式

    0配置文件的形式主要是采用spring3.0提供的@configuration注解和spring容器在启动的时候会加载实现了WebApplicationInitializer的类,并调用其onStar ...

  5. mybatis {arg0} 与 {0}

    解决方案: MyBatis的XML的配置文件中声明设置属性的useActualParamName参数值为假 <setting name="useActualParamName" ...

  6. mybatis将传入0识别成空字符串

    mybatis将传入的Integer类型的0被识别成空字符串,网上的解决办法: <if test="status != null and status != '' or status ...

  7. SpringBoot整合MyBatis与MySql8.0

    一.前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis.最新MySQL8.0整合过程中遇到的问题进 ...

  8. Mybatis 3.3.0 Log4j配置

    最近做一个SSM学习项目,配置log4j,mybatis用下面的方式配置,不管用,打印不出执行的SQL语句. log4j.logger.java.sql.Connection=DEBUGlog4j.l ...

  9. mybatis理解(0)

随机推荐

  1. Python 爬虫 某迅漫画 selemiun+plantomJS

    目标站点需求分析 爬取某迅漫画到本地 涉及的库 selenium, PhantomJS time,urllib.request,os,random 模拟滑动窗口,获取完整网页 保存到文件中 获取本地h ...

  2. Mac OSX 系统搭建 Java 开发环境

    转载:https://www.cnblogs.com/zjx2711904647/p/7735556.html 1. 安装JDK 双击jdk-9.0.1_osx-x64_bin.dmg文件进行安装 2 ...

  3. 十三.iptabled配置

    期中集群架构-第十三章-iptables防火墙网路安全实践配置========================================= 01:iptables防火墙网路安全前言介绍 学好ip ...

  4. 团队项目——NABCD

    团队名称:天码行空 团队项目名称:天码记账 团队口号:彰明往事,考察未来 发布后一周内用户量:1千 N(Need)需求 这个软件主要解决了大学生管理自己财务状况的问题,随着手机支付的日趋流行大家对财务 ...

  5. 一键配置高可用Hadoop集群(hdfs HA+zookeeper HA)

    准备环境 3台节点,主节点 建议 2G 内存,两个从节点 1.5G内存, 桥接网络 关闭防火墙 配置ssh,让节点之间能够相互 ping 通 准备  软件放到 autoInstall  目录下,已存放 ...

  6. 咸鱼入门到放弃6--jsp<一>三指令

    JSP全称是Java Server Pages 它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比htm ...

  7. 记 Win10 + Ubuntu18.04 安装

    目录 一.准备(一)环境(二)镜像(三)优盘 (四)启动项管理软件EasyBCD(五)启动优盘制作软件(六)分区二.安装 (一)优盘启动(二)安装windows10(三)安装ubuntu18.04(四 ...

  8. 07-Python入门学习-字符编码与文件处理

    字符编码 人操作计算机使用人类认识的字符,而计算机存放都是二进制数字所以人在往计算机里输入内容的时候,必然发生: 人类的字符------(字符编码表)-------->数字 比如我输入一个‘上’ ...

  9. BZOJ 5104

    这个模数比较有趣 可以求出 $\sqrt{5}$ 然后就可以做了 $f_n=\dfrac{\sqrt{5}}{5}[(\dfrac{\sqrt{5}+1}{2})^n-(\dfrac{1-\sqrt{ ...

  10. 关于UTF-8和GBK编码的转换

    $oldname=mb_convert_encoding($_POST['oldname'], "GBK" , "UTF-8");//将变量转码为GBK,已知原 ...