MybatisPlus代码生成器-SpringBoot

快来打我* 2024-03-30 10:51 245阅读 0赞

这部分完全可以参考官网文档:https://baomidou.com/

我这里举个例子

引入依赖:

  1. <!-- mybatisplus 基本功能引入它 -->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.5.1</version>
  6. </dependency>
  7. <!-- mybatisplus 代码生成器必须引入它 -->
  8. <dependency>
  9. <groupId>com.baomidou</groupId>
  10. <artifactId>mybatis-plus-generator</artifactId>
  11. <version>3.5.1</version>
  12. </dependency>
  13. <!-- mybatisplus 代码生成器配合使用 -->
  14. <dependency>
  15. <groupId>org.apache.velocity</groupId>
  16. <artifactId>velocity-engine-core</artifactId>
  17. <version>2.3</version>
  18. </dependency>

application.properties配置文件

  1. # 开启mp驼峰命名
  2. mybatis-plus.configuration.map-underscore-to-camel-case=true
  3. # 配置mp全局逻辑删除
  4. mybatis-plus.global-config.db-config.logic-delete-value=1
  5. mybatis-plus.global-config.db-config.logic-not-delete-value=0
  6. # 显示mp的sql日志
  7. mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
  8. # 当然,数据库的相关配置肯定不可少
  9. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  10. spring.datasource.url=jdbc://mysql://localhost:3306/common-login?serverTimezone=Asia/Shanghai
  11. spring.datasource.username=root
  12. spring.datasource.password=123456
  13. # ...

在test目录或者随便什么位置,执行如下代码生成器

  1. package com.hssy.login;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.baomidou.mybatisplus.generator.FastAutoGenerator;
  4. import com.baomidou.mybatisplus.generator.config.OutputFile;
  5. import java.util.ArrayList;
  6. import java.util.Collections;
  7. import java.util.List;
  8. public class CodeGenerator {
  9. public static void main(String[] args) {
  10. List<String> tables = new ArrayList<>();
  11. // tables.add("p_user");
  12. // tables.add("p_question");
  13. // tables.add("game_category");
  14. // tables.add("game_game_category"); // TODO
  15. tables.add("user"); // TODO
  16. FastAutoGenerator.create("jdbc:mysql://localhost:3306/common-login?serverTimezone=UTC","root","123456")
  17. .globalConfig(builder -> {
  18. builder.author("hssy") //作者
  19. .outputDir(System.getProperty("user.dir")+"\\src\\main\\java") //输出路径(写到java目录)
  20. .enableSwagger() //开启swagger
  21. .commentDate("yyyy-MM-dd")
  22. .fileOverride(); //开启覆盖之前生成的文件
  23. })
  24. .packageConfig(builder -> {
  25. builder.parent("com.hssy")
  26. .moduleName("login") //模块名称 TODO
  27. .entity("entity") //实体类名称 TODO
  28. .service("service") //service名称 TODO
  29. .serviceImpl("service.impl") // TODO
  30. .controller("controller") // TODO
  31. .mapper("mapper") // TODO
  32. .xml("mapper") // TODO
  33. .pathInfo(Collections.singletonMap(OutputFile.mapperXml,System.getProperty("user.dir")+"\\src\\main\\resources\\mapper"));// TODO
  34. })
  35. .strategyConfig(builder -> {
  36. builder.addInclude(tables)
  37. .addTablePrefix("test_") //过滤表名前缀,比如p_test,我们生成的实体类名就是test // TODO
  38. .serviceBuilder() //sevice策略配置
  39. .formatServiceFileName("%sService")
  40. .formatServiceImplFileName("%sServiceImpl")
  41. .entityBuilder() //实体类策略配置
  42. .enableLombok() //开启lombok
  43. .logicDeleteColumnName("is_deleted") //说明逻辑删除的是哪个字段
  44. .enableTableFieldAnnotation() //属性加上说明注解
  45. .controllerBuilder() //controller配置策略
  46. // 映射路径使用连字符格式,而不是驼峰
  47. .enableHyphenStyle()
  48. .formatFileName("%sController")
  49. .enableRestStyle() //开启RestController
  50. .mapperBuilder() //mapper配置策略
  51. //生成通用的resultMap
  52. .enableBaseResultMap()
  53. .superClass(BaseMapper.class) //继承哪个父类
  54. .formatMapperFileName("%sMapper")
  55. .enableMapperAnnotation() //开启@Mapper注解
  56. .formatXmlFileName("%sMapper");
  57. })
  58. // .templateConfig(new Consumer<TemplateConfig.Builder>() {
  59. // @Override
  60. // public void accept(TemplateConfig.Builder builder) {
  61. // // 实体类使用我们自定义模板
  62. // builder.entity("templates/myentity.java");
  63. // }
  64. // })
  65. // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
  66. .execute();
  67. }
  68. }

MybatisPlus的配置文件

更多配置可参考官网

  1. package com.hssy.login.config;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  4. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. @Configuration
  8. public class MybatisPlusConfig {
  9. /**
  10. * 分页插件
  11. */
  12. @Bean
  13. public MybatisPlusInterceptor mybatisPlusInterceptor() {
  14. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  15. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  16. return interceptor;
  17. }
  18. }

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读