因为工作项目的需要,简单学习一下MyBatis-Plus
首先创建一个springboot项目,然后导入相应的依赖
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | <dependency><groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-devtools</artifactId>
 <scope>runtime</scope>
 <optional>true</optional>
 </dependency>
 <dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <optional>true</optional>
 </dependency>
 
 | 
当然热部署如果不习惯用的话可以不加
下面进入正题 整合mybatisplus
很熟悉啊 很快 导入mybatisplus的依赖(包括代码生成器的依赖~)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-boot-starter</artifactId>
 <version>3.2.0</version>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-freemarker</artifactId>
 </dependency>
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
 </dependency>
 
 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-generator</artifactId>
 <version>3.2.0</version>
 </dependency>
 
 | 
下面我们去写一下数据库等相应的配置,我这里用的是yaml格式
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | spring:
 datasource:
 driver-class-name: com.mysql.cj.jdbc.Driver
 url: jdbc:mysql://localhost:3306/mybatis-p?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
 username: root
 password: 手动马赛克
 mybatis-plus:
 mapper-locations: classpath*:/mapper/**Mapper.xml
 
 | 
因为要一步到位我们添加了分页的插件 所以我们要写一个配置类
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | package com.bestrookie.config;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @Configuration
 @EnableTransactionManagement
 @MapperScan("com.bestrookie.mapper")
 public class MybatisPlusConfig {
 @Bean
 public PaginationInterceptor paginationInterceptor() {
 PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
 return paginationInterceptor;
 }
 }
 
 | 
因为懒嘛~代码生成器 你懂得(记得看注释修改一下配置)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 
 | package com.bestrookie;import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.*;
 import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
 import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Scanner;
 
 public class CodeGenerator {
 
 
 
 
 
 
 public static String scanner(String tip) {
 Scanner scanner = new Scanner(System.in);
 StringBuilder help = new StringBuilder();
 help.append("请输入" + tip + ":");
 System.out.println(help.toString());
 if (scanner.hasNext()) {
 String ipt = scanner.next();
 if (StringUtils.isNotEmpty(ipt)) {
 return ipt;
 }
 }
 throw new MybatisPlusException("请输入正确的" + tip + "!");
 }
 
 public static void main(String[] args) {
 
 AutoGenerator mpg = new AutoGenerator();
 
 
 GlobalConfig gc = new GlobalConfig();
 String projectPath = System.getProperty("user.dir");
 gc.setOutputDir(projectPath + "/src/main/java");
 
 gc.setAuthor("bestrookie");
 gc.setOpen(false);
 
 gc.setServiceName("%sService");
 mpg.setGlobalConfig(gc);
 
 
 DataSourceConfig dsc = new DataSourceConfig();
 dsc.setUrl("jdbc:mysql://localhost:3306/mybatis-p?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
 
 dsc.setDriverName("com.mysql.cj.jdbc.Driver");
 dsc.setUsername("root");
 dsc.setPassword("123456");
 mpg.setDataSource(dsc);
 
 
 PackageConfig pc = new PackageConfig();
 pc.setModuleName(null);
 pc.setParent("com.bestrookie");
 mpg.setPackageInfo(pc);
 
 
 InjectionConfig cfg = new InjectionConfig() {
 @Override
 public void initMap() {
 
 }
 };
 
 
 String templatePath = "/templates/mapper.xml.ftl";
 
 
 
 
 List<FileOutConfig> focList = new ArrayList<>();
 
 focList.add(new FileOutConfig(templatePath) {
 @Override
 public String outputFile(TableInfo tableInfo) {
 
 return projectPath + "/src/main/resources/mapper/"
 + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
 }
 });
 
 cfg.setFileOutConfigList(focList);
 mpg.setCfg(cfg);
 
 
 TemplateConfig templateConfig = new TemplateConfig();
 
 templateConfig.setXml(null);
 mpg.setTemplate(templateConfig);
 
 
 StrategyConfig strategy = new StrategyConfig();
 strategy.setNaming(NamingStrategy.underline_to_camel);
 strategy.setColumnNaming(NamingStrategy.underline_to_camel);
 strategy.setEntityLombokModel(true);
 strategy.setRestControllerStyle(true);
 strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
 strategy.setControllerMappingHyphenStyle(true);
 strategy.setTablePrefix("m_");
 mpg.setStrategy(strategy);
 mpg.setTemplateEngine(new FreemarkerTemplateEngine());
 mpg.execute();
 }
 }
 
 | 
然后运行这个类 根据提示来
到了这一步就大功告成了
我们来测试一下
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 
 | package com.bestrookie.controller;import com.bestrookie.entity.User;
 import com.bestrookie.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 
 
 
 
 
 
 
 @RestController
 @RequestMapping("/user")
 public class UserController {
 @Autowired
 private UserService userService;
 @GetMapping("/{id}")
 public User query(@PathVariable("id") Long id){
 System.out.printf("查询任务");
 return userService.getById(id);
 }
 @GetMapping("/delete/{id}")
 public boolean delete(@PathVariable Long id){
 System.out.println("删除测试");
 return userService.removeById(id);
 }
 @GetMapping("/add")
 public boolean add(){
 User user = new User();
 user.setAge(20);
 user.setEmail("789");
 user.setName("张三");
 return userService.save(user);
 }
 @GetMapping("/update/{id}")
 public boolean update(@PathVariable Long id){
 User user = userService.getById(id);
 user.setName("娃哈哈");
 return userService.updateById(user);
 
 }
 
 }
 
 
 | 
熟悉的CRUD。