修改依赖

将Mybatis依赖移除,添加Mybatis-plus的依赖。

  1. <!--mybatis-->
  2. <!-- <dependency>-->
  3. <!-- <groupId>org.mybatis.spring.boot</groupId>-->
  4. <!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
  5. <!-- <version>1.3.2</version>-->
  6. <!-- </dependency>-->
  7. <!--mybatis plus-->
  8. <dependency>
  9. <groupId>com.baomidou</groupId>
  10. <artifactId>mybatis-plus-boot-starter</artifactId>
  11. <version>3.3.1.tmp</version>
  12. </dependency>

修改Mapper

修改UserMapper文件继承Mybatis-plus的BaseMapper类,BaseMapper提供了诸多CURD方法。

  1. public interface UserMapper extends BaseMapper<User>{
  2. }

调用方法

  1. @Override
  2. public List<User> getAllUserList(){
  3. return userMapper.selectList(null);
  4. }

selectList方法是Mybatis plus自带的方法,接收一个Wrapper,null表示无条件,将会返回所有数据。

[

](https://gitee.com/xiaozheng243/spring-boot-demo/tree/master/spring-boot-demo-mybatis-plus)

代码自动生成

Mybatis plus提供了根据数据库表名自动生成代码的工具。

添加依赖

  1. <!--mybatis-plus-->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.3.1.tmp</version>
  6. </dependency>
  7. <!--mybatis代码生成器-->
  8. <dependency>
  9. <groupId>com.baomidou</groupId>
  10. <artifactId>mybatis-plus-generator</artifactId>
  11. <version>3.3.2</version>
  12. </dependency>
  13. <!--mybatis模板引擎-->
  14. <dependency>
  15. <groupId>org.freemarker</groupId>
  16. <artifactId>freemarker</artifactId>
  17. <!-- <version>latest-freemarker-version</version>-->
  18. </dependency>

添加可执行方法

  1. /**
  2. * @author via internet
  3. * 执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
  4. */
  5. public class CodeGenerator {
  6. /**
  7. * <p>
  8. * 读取控制台内容
  9. * </p>
  10. */
  11. public static String scanner(String tip) {
  12. Scanner scanner = new Scanner(System.in);
  13. System.out.println("请输入" + tip + ":");
  14. if (scanner.hasNext()) {
  15. String ipt = scanner.next();
  16. if (StringUtils.isNotBlank(ipt)) {
  17. return ipt;
  18. }
  19. }
  20. throw new MybatisPlusException("请输入正确的" + tip + "!");
  21. }
  22. public static void main(String[] args) {
  23. // 代码生成器
  24. AutoGenerator mpg = new AutoGenerator();
  25. // 全局配置
  26. GlobalConfig gc = new GlobalConfig();
  27. String projectPath = System.getProperty("user.dir");
  28. // 如果项目为子模块,注意此处添加子模块名称spring-boot-demo-mybatis-plus
  29. gc.setOutputDir(projectPath + "/spring-boot-demo-mybatis-plus/src/main/java");
  30. // gc.setOutputDir("D:\\test");
  31. gc.setAuthor("yuluo");
  32. gc.setOpen(false);
  33. // gc.setSwagger2(true); 实体属性 Swagger2 注解
  34. gc.setServiceName("%sService");
  35. mpg.setGlobalConfig(gc);
  36. // 数据源配置
  37. DataSourceConfig dsc = new DataSourceConfig();
  38. dsc.setUrl("jdbc:mysql://eurekaserver01.com:2333/demo?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
  39. // dsc.setSchemaName("public");
  40. dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  41. dsc.setUsername("demo");
  42. dsc.setPassword("xxxxxxx");
  43. mpg.setDataSource(dsc);
  44. // 包配置
  45. PackageConfig pc = new PackageConfig();
  46. pc.setModuleName(null);
  47. pc.setParent("online.yuluo.springbootdemo");
  48. mpg.setPackageInfo(pc);
  49. // 自定义配置
  50. InjectionConfig cfg = new InjectionConfig() {
  51. @Override
  52. public void initMap() {
  53. // to do nothing
  54. }
  55. };
  56. // 如果模板引擎是 freemarker
  57. String templatePath = "/templates/mapper.xml.ftl";
  58. // 如果模板引擎是 velocity
  59. // String templatePath = "/templates/mapper.xml.vm";
  60. // 自定义输出配置
  61. List<FileOutConfig> focList = new ArrayList<>();
  62. // 自定义配置会被优先输出
  63. focList.add(new FileOutConfig(templatePath) {
  64. @Override
  65. public String outputFile(TableInfo tableInfo) {
  66. // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
  67. return projectPath + "/src/main/resources/mapper/"
  68. + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
  69. }
  70. });
  71. cfg.setFileOutConfigList(focList);
  72. mpg.setCfg(cfg);
  73. // 配置模板
  74. TemplateConfig templateConfig = new TemplateConfig();
  75. templateConfig.setXml(null);
  76. mpg.setTemplate(templateConfig);
  77. // 策略配置
  78. StrategyConfig strategy = new StrategyConfig();
  79. strategy.setNaming(NamingStrategy.underline_to_camel);
  80. strategy.setColumnNaming(NamingStrategy.underline_to_camel);
  81. strategy.setEntityLombokModel(true);
  82. strategy.setRestControllerStyle(true);
  83. strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
  84. strategy.setControllerMappingHyphenStyle(true);
  85. strategy.setTablePrefix("");
  86. mpg.setStrategy(strategy);
  87. mpg.setTemplateEngine(new FreemarkerTemplateEngine());
  88. mpg.execute();
  89. }
  90. }

源码访问

Mybatis plus更多使用方式请查看官方文档。