经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MyBatis » 查看文章
mybatis plus代码生成器配置过程解析
来源:jb51  时间:2019/11/12 13:32:21  对本文有异议

这篇文章主要介绍了mybatis plus代码生成器配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

最近在玩项目,发现自己写严重浪费时间~于是想到了代码生成器,之前用过一次的mybatis-plus,再重新实现了一下

确保修改好对应的配置即可

依赖:

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>2.2.0</version>
  5. </dependency>
  6. <!-- mysql驱动 -->
  7. <dependency>
  8. <groupId>mysql</groupId>
  9. <artifactId>mysql-connector-java</artifactId>
  10. <version>5.1.47</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>freemarker</groupId>
  14. <artifactId>freemarker</artifactId>
  15. <version>2.3.8</version>
  16. </dependency>

代码:

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

建个工程丢下去,修改相关配置,run完事~~~~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号