MybatisPlus代码生成器

x33g5p2x  于2021-11-27 转载在 其他  
字(3.4k)|赞(0)|评价(0)|浏览(318)
  • AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
  • 首先添加依赖
  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-generator</artifactId>
  4. <version>3.3.1.tmp</version>
  5. </dependency>

版本根据自身环境设置

  • 完成以下配置
  1. package cn.moon.generator;
  2. import java.util.Scanner;
  3. import com.baomidou.mybatisplus.annotation.DbType;
  4. import com.baomidou.mybatisplus.annotation.IdType;
  5. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
  6. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  7. import com.baomidou.mybatisplus.generator.AutoGenerator;
  8. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  9. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  10. import com.baomidou.mybatisplus.generator.config.PackageConfig;
  11. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
  12. import com.baomidou.mybatisplus.generator.config.rules.DateType;
  13. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  14. /** * @author pegion * @date 2021/11/27 */
  15. public class CodeGenerator {
  16. /** * <p> * 读取控制台内容 * </p> */
  17. public static String scanner(String tip) {
  18. Scanner scanner = new Scanner(System.in);
  19. StringBuilder help = new StringBuilder();
  20. help.append("请输入" + tip + ":");
  21. System.out.println(help.toString());
  22. if (scanner.hasNext()) {
  23. String ipt = scanner.next();
  24. if (StringUtils.isNotBlank(ipt)) {
  25. return ipt;
  26. }
  27. }
  28. throw new MybatisPlusException("请输入正确的" + tip + "!");
  29. }
  30. /** * RUN THIS */
  31. public static void main(String[] args) {
  32. // 代码生成器
  33. AutoGenerator mpg = new AutoGenerator();
  34. // 全局配置
  35. GlobalConfig gc = new GlobalConfig();
  36. // String projectPath = System.getProperty("user.dir");
  37. gc.setOutputDir(scanner("请输入你的项目路径")+ "/src/main/java");
  38. gc.setAuthor("pegion");
  39. //生成之后是否打开资源管理器
  40. gc.setOpen(false);
  41. //重新生成时是否覆盖文件
  42. gc.setFileOverride(false);
  43. gc.setServiceName("%sService");//%s为占位符 mp生成service代码 默认接口名称第一个字母是有I
  44. //设置主键生成策略 主键自动增长
  45. gc.setIdType(IdType.AUTO);
  46. //设置Date数据类型 默认使用java.util.date 代替
  47. gc.setDateType(DateType.ONLY_DATE);
  48. //开启实体属性
  49. gc.setSwagger2(true);
  50. mpg.setGlobalConfig(gc);
  51. // 数据源配置
  52. DataSourceConfig dsc = new DataSourceConfig();
  53. dsc.setUrl("jdbc:mysql://localhost:3306/xinguan?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8");
  54. // dsc.setSchemaName("public");
  55. dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  56. dsc.setUsername("root");
  57. dsc.setPassword("root");
  58. //设置数据库类型
  59. dsc.setDbType(DbType.MYSQL);
  60. mpg.setDataSource(dsc);
  61. // 包配置
  62. PackageConfig pc = new PackageConfig();
  63. pc.setModuleName(scanner("请输入模块名"));
  64. pc.setParent("cn.moon");
  65. pc.setController("controller");
  66. pc.setService("service");
  67. pc.setServiceImpl("service.impl");
  68. pc.setXml("mapper");
  69. pc.setMapper("mapper");
  70. pc.setEntity("entity");
  71. mpg.setPackageInfo(pc);
  72. // 策略配置
  73. StrategyConfig strategy = new StrategyConfig();
  74. //设置哪些表需要自动生成
  75. strategy.setInclude(scanner("表名"));
  76. //实体类驼峰命名
  77. strategy.setNaming(NamingStrategy.underline_to_camel);
  78. //字段名驼峰命名
  79. strategy.setColumnNaming(NamingStrategy.underline_to_camel);
  80. //使用简化get与set
  81. strategy.setEntityLombokModel(true);
  82. //设置Controller的api风格 使用rest风格
  83. strategy.setRestControllerStyle(true);
  84. // strategy.setSuperEntityColumns("id");
  85. //驼峰转连字符
  86. strategy.setControllerMappingHyphenStyle(true);
  87. mpg.setStrategy(strategy);
  88. mpg.execute();
  89. }
  90. }
  • 以上配置可根据具体业务需求增删,MybatisPlus提供了大量API以简化开发过程,具体请参考MP官网。
  • 启动测试

此时MP会自动生成包及基础类与接口们

相关文章