当前位置:   article > 正文

Mybatis-plus-generator代码自动生成工具,自动生成实体类

mybatis-plus-generator

效果:可以自动生成 Controller Service Mapper DAO层的基本代码,免去自己去写实体类映射数据库的繁琐操作


 提效神器之代码自动生成MybatisPlus-Generator+Lombok

   Mybatis-plus-generator介绍

  • AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
  • 底层是模板引擎技术,可以自定义生成的java类模板
  • 大家以前或多或少用过基础版mybatis-genarator

           第一步 

  • 添加依赖
    1. <!-- 代码自动生成依赖 begin -->
    2. <dependency>
    3. <groupId>com.baomidou</groupId>
    4. <artifactId>mybatis-plus-generator</artifactId>
    5. <version>3.4.1</version>
    6. </dependency>
    7. <!-- velocity -->
    8. <dependency>
    9. <groupId>org.apache.velocity</groupId>
    10. <artifactId>velocity-engine-core</artifactId>
    11. <version>2.0</version>
    12. </dependency>
    13. <!-- 代码自动生成依赖 end-->

      第二步

  • 实现代码(标记TODO的记得修改)

  • 将下方代码放入测试类运行即可生成

    1. package net.xdclass.manager;
    2. import com.baomidou.mybatisplus.annotation.DbType;
    3. import com.baomidou.mybatisplus.annotation.IdType;
    4. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
    5. import com.baomidou.mybatisplus.generator.AutoGenerator;
    6. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    7. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    8. import com.baomidou.mybatisplus.generator.config.PackageConfig;
    9. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    10. import com.baomidou.mybatisplus.generator.config.rules.DateType;
    11. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    12. import lombok.extern.slf4j.Slf4j;
    13. import org.apache.commons.lang3.StringUtils;
    14. import org.springframework.boot.test.context.SpringBootTest;
    15. import java.util.Scanner;
    16. @Slf4j
    17. public class MyBatisPlusGenerator {
    18. public static void main(String[] args) {
    19. //1. 全局配置
    20. GlobalConfig config = new GlobalConfig();
    21. // 是否支持AR模式
    22. config.setActiveRecord(true)
    23. // 作者
    24. .setAuthor("夕颜")
    25. // 生成路径,最好使用绝对路径
    26. //TODO TODO TODO TODO
    27. .setOutputDir("D:\\Desktop\\springboot2\\1024-manager\\sc")
    28. // 文件覆盖
    29. .setFileOverride(true)
    30. // 主键策略
    31. .setIdType(IdType.AUTO)
    32. .setDateType(DateType.ONLY_DATE)
    33. // 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的
    34. .setServiceName("%sService")
    35. //实体类结尾名称
    36. .setEntityName("%sDO")
    37. //生成基本的resultMap
    38. .setBaseResultMap(true)
    39. //不使用AR模式
    40. .setActiveRecord(false)
    41. //生成基本的SQL片段
    42. .setBaseColumnList(true);
    43. //2. 数据源配置
    44. DataSourceConfig dsConfig = new DataSourceConfig();
    45. // 设置数据库类型
    46. dsConfig.setDbType(DbType.MYSQL)
    47. .setDriverName("com.mysql.cj.jdbc.Driver")
    48. //TODO TODO TODO TODO
    49. .setUrl("jdbc:mysql://127.0.0.1:3306/xd_shop?useSSL=false")
    50. .setUsername("root")
    51. .setPassword("123");
    52. //3. 策略配置globalConfiguration中
    53. StrategyConfig stConfig = new StrategyConfig();
    54. //全局大写命名
    55. stConfig.setCapitalMode(true)
    56. // 数据库表映射到实体的命名策略
    57. .setNaming(NamingStrategy.underline_to_camel)
    58. //使用lombok
    59. .setEntityLombokModel(true)
    60. //使用restcontroller注解
    61. .setRestControllerStyle(true)
    62. // 生成的表, 支持多表一起生成,以数组形式填写
    63. //TODO TODO TODO TODO 两个方式,直接写,或者使用命令行输入
    64. .setInclude("product","banner","address","coupon","product_order");
    65. //.setInclude(scanner("表名,多个英文逗号分割").split(","));
    66. //4. 包名策略配置
    67. PackageConfig pkConfig = new PackageConfig();
    68. pkConfig.setParent("net.xdclass")
    69. .setMapper("mapper")
    70. .setService("service")
    71. .setController("controller")
    72. .setEntity("model")
    73. .setXml("mapper");
    74. //5. 整合配置
    75. AutoGenerator ag = new AutoGenerator();
    76. ag.setGlobalConfig(config)
    77. .setDataSource(dsConfig)
    78. .setStrategy(stConfig)
    79. .setPackageInfo(pkConfig);
    80. //6. 执行操作
    81. ag.execute();
    82. System.out.println("======= Done 相关代码生成完毕 ========");
    83. }
    84. /**
    85. * <p>
    86. * 读取控制台内容
    87. * </p>
    88. */
    89. // public static String scanner(String tip) {
    90. // Scanner scanner = new Scanner(System.in);
    91. // StringBuilder help = new StringBuilder();
    92. // help.append("请输入" + tip + ":");
    93. // System.out.println(help.toString());
    94. // if (scanner.hasNext()) {
    95. // String ipt = scanner.next();
    96. // if (StringUtils.isNotBlank(ipt)) {
    97. // return ipt;
    98. // }
    99. // }
    100. // throw new MybatisPlusException("请输入正确的" + tip + "!");
    101. // }
    102. }

 生成效果

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/231097
推荐阅读
相关标签
  

闽ICP备14008679号