1. public class MpGenerator {
  2. /**
  3. * <p>
  4. * MySQL 生成演示
  5. * </p>
  6. */
  7. public static void main(String[] args) {
  8. AutoGenerator mpg = new AutoGenerator();
  9.  
  10. // 全局配置
  11. GlobalConfig gc = new GlobalConfig();
  12. gc.setOutputDir("D://");
  13. gc.setFileOverride(true);
  14. gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
  15. gc.setEnableCache(false);// XML 二级缓存
  16. gc.setBaseResultMap(true);// XML ResultMap
  17. gc.setBaseColumnList(false);// XML columList
  18. gc.setAuthor("张晓宇");
  19.  
  20. // 自定义文件命名,注意 %s 会自动填充表实体属性!
  21. // gc.setMapperName("%sDao");
  22. // gc.setXmlName("%sDao");
  23. // gc.setServiceName("MP%sService");
  24. // gc.setServiceImplName("%sServiceDiy");
  25. // gc.setControllerName("%sAction");
  26. mpg.setGlobalConfig(gc);
  27.  
  28. // 数据源配置
  29. DataSourceConfig dsc = new DataSourceConfig();
  30. dsc.setDbType(DbType.MYSQL);
  31. dsc.setTypeConvert(new MySqlTypeConvert() {
  32. // 自定义数据库表字段类型转换【可选】
  33. @Override
  34. public DbColumnType processTypeConvert(String fieldType) {
  35. System.out.println("转换类型:" + fieldType);
  36. // 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。
  37. return super.processTypeConvert(fieldType);
  38. }
  39. });
  40. dsc.setDriverName("com.mysql.jdbc.Driver");
  41. dsc.setUsername("root");
  42. dsc.setPassword("123456");
  43. dsc.setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useSSL=false");
  44. mpg.setDataSource(dsc);
  45.  
  46. // 策略配置
  47. StrategyConfig strategy = new StrategyConfig();
  48. // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
  49. // strategy.setTablePrefix(new String[] { "pf_product_" });// 此处可以修改为您的表前缀
  50. strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
  51. strategy.setInclude(new String[] { "user" }); // 需要生成的表
  52. // strategy.setExclude(new String[]{"test"}); // 排除生成的表
  53. // 自定义实体父类
  54. // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");
  55. // 自定义实体,公共字段
  56. // strategy.setSuperEntityColumns(new String[] { "test_id", "age" });
  57. // 自定义 mapper 父类
  58. // strategy.setSuperMapperClass("com.baomidou.demo.TestMapper");
  59. // 自定义 service 父类
  60. // strategy.setSuperServiceClass("com.baomidou.demo.TestService");
  61. // 自定义 service 实现类父类
  62. // strategy.setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl");
  63. // 自定义 controller 父类
  64. // strategy.setSuperControllerClass("com.baomidou.demo.TestController");
  65. // 【实体】是否生成字段常量(默认 false)
  66. // public static final String ID = "test_id";
  67. // strategy.setEntityColumnConstant(true);
  68. // 【实体】是否为构建者模型(默认 false)
  69. // public User setName(String name) {this.name = name; return this;}
  70. // strategy.setEntityBuilderModel(true);
  71. mpg.setStrategy(strategy);
  72.  
  73. // 包配置
  74. PackageConfig pc = new PackageConfig();
  75. pc.setParent("com.aikxian.av");
  76. pc.setModuleName("test");
  77. mpg.setPackageInfo(pc);
  78.  
  79. // 注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】
  80. InjectionConfig cfg = new InjectionConfig() {
  81. @Override
  82. public void initMap() {
  83. Map<String, Object> map = new HashMap<String, Object>();
  84. map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
  85. this.setMap(map);
  86. }
  87. };
  88.  
  89. // 自定义 xxList.jsp 生成
  90. List<FileOutConfig> focList = new ArrayList<FileOutConfig>();
  91. // focList.add(new FileOutConfig("/template/list.jsp.vm") {
  92. // @Override
  93. // public String outputFile(TableInfo tableInfo) {
  94. // // 自定义输入文件名称
  95. // return "D://my_" + tableInfo.getEntityName() + ".jsp";
  96. // }
  97. // });
  98. // cfg.setFileOutConfigList(focList);
  99. // mpg.setCfg(cfg);
  100.  
  101. // 调整 xml 生成目录演示
  102. focList.add(new FileOutConfig("D://templates/mapper.xml.vm") {
  103. @Override
  104. public String outputFile(TableInfo tableInfo) {
  105. return "/develop/code/xml/" + tableInfo.getEntityName() + ".xml";
  106. }
  107. });
  108. // cfg.setFileOutConfigList(focList);
  109. // mpg.setCfg(cfg);
  110.  
  111. // 关闭默认 xml 生成,调整生成 至 根目录
  112. TemplateConfig tc = new TemplateConfig();
  113. // tc.setXml(null);
  114. mpg.setTemplate(tc);
  115.  
  116. // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改,
  117. // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
  118. // TemplateConfig tc = new TemplateConfig();
  119. // tc.setController("...");
  120. // tc.setEntity("...");
  121. // tc.setMapper("...");
  122. // tc.setXml("...");
  123. // tc.setService("...");
  124. // tc.setServiceImpl("...");
  125. // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。
  126. // mpg.setTemplate(tc);
  127.  
  128. // 执行生成
  129. mpg.execute();
  130.  
  131. // 打印注入设置【可无】
  132. // System.err.println(mpg.getCfg().getMap().get("abc"));
  133. }
  134. }

mybatis-plus 自动生成代码的更多相关文章

  1. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

  2. idea中mybatis generator自动生成代码配置 数据库是sqlserver

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

  3. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  4. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

  5. IDEA Maven Mybatis generator 自动生成代码(实例讲解)(转)

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  6. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  7. 使用mybatis插件自动生成代码以及问题处理

    1.pom.xml中加入依赖插件 <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis ...

  8. MyBatis框架之mybatis逆向工程自动生成代码

    http://www.jb51.net/article/82062.htm Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们 ...

  9. SpringBoot+Mybatis+MySql 自动生成代码 自动分页

    一.配置文件 <!-- 通用mapper --> <dependency> <groupId>tk.mybatis</groupId> <arti ...

  10. 使用Mybatis Generator自动生成代码

    MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码.它将内省数据库 ...

随机推荐

  1. iuplua test on luaforwindows

    SW https://github.com/rjpcomputing/luaforwindows/releases Steps Install lua for windows write a bat ...

  2. Linux系统挂载新磁盘

    执行df -h 查看已挂载磁盘 未能找到挂载磁盘 1)使用fdisk -l命令查看主机上的硬盘 红圈标志为后挂载的磁盘未能挂载 2)使用mkfs.ext4命令把硬盘格式化: mkfs.ext4 /de ...

  3. forward reference前向引用,gloal values and local values全局变量和局部变量,recursive function递归函数

    1.全局变量与局部变量练习 1 # -*- coding: UTF-8 -*- 2 def bar(): 3 print('from bar') 4 def foo(): 5 print('from ...

  4. iterator简单描述

    Item 26. Prefer iterator to const iterator, reverse_iterator, and const_reverse_iterator. 上面一段话,是< ...

  5. Zabbix监控进程(进程消失后钉钉报警)

    用于python报警的脚本如下:(钉钉机器人的连接需要修改) #!/usr/bin/python3# -*- coding: utf-8 -*-# Author: aiker@gdedu.ml# My ...

  6. 好看的java集合类图

    http://blog.csdn.net/iamzp2008/article/details/38151971?utm_source=tuicool&utm_medium=referral 现 ...

  7. Alpha阶段项目规划

    Alpha阶段任务 概述 我们团队采访学长并听从学长的意见之后,决定根据第一版的phylab项目进行重构.但由于第一版的phylab项目在github上的代码仅仅只有alpha版本,我们接手之后进行了 ...

  8. 关于javabean

    [javabean定义]定义:JavaBeans是Java语言中可以重复使用的软件组件,实质上是一种特殊的Java类.特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属 ...

  9. android 开发 View _10_ Path之基本操作

    转载地址:http://www.gcssloop.com/customview/Path_Basic/ 安卓自定义View进阶-Path之基本操作 在上一篇Canvas之图片文字中我们了解了如何使用C ...

  10. 解决strcmp的错误以及VS的快捷键

    主要是C++数组作业中发现的一些问题. 第一点是关于strcat函数 我用VS2018调用strcat的时候报错,错误信息提示strcat不安全(?)要用strcat_s.修改后,可成功运行. 但这两 ...