SpringBoot2整合MyBatis-Plus

SpringBoot2 整合 MyBatis-Plus

    • 1、什么是MyBatis-Plus
    • 2、整合MyBatis-Plus
      • 1. 导入MyBatis-Plus的场景:
      • 2. .Mybatis-Plus的自动配置(内含源码解析,初学者可跳过观看)
      • 编写一个小测试查看MyBatis-Plus的运行是否顺利:
    • 3、MyBatis-Plus实现crud功能(示例代码)
      • 完整具体实现:

1、什么是MyBatis-Plus

**MyBatis-Plus(简称 MP)**是一个MyBatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。(最重要的是MyBatis-Plus是国人做出来的,真牛逼!!!)

在整合MyBatis-Plus之前,个人建议先安装一个MybatisX 的插件:
SpringBoot2整合MyBatis-Plus_第1张图片
至于为什么装这个MyBatisX的插件,当你下载完重启idea后,你会发现两只贼可爱的小鸟呢!!!!(博主happy一下子嘛,不要介意)

因为:MybatisX 是一款全免费且强大的 IDEA 插件,支持跳转、自动补全生成 SQL、代码生成等等。

2、整合MyBatis-Plus

1. 导入MyBatis-Plus的场景:

```xml

            com.baomidou
            mybatis-plus-boot-starter
            3.4.1

```

2. .Mybatis-Plus的自动配置(内含源码解析,初学者可跳过观看)

  • MybatisPlusAutoConfiguration 自动配置类中,MybatisPlusProperties 配置项绑定。mybatis-plus:**** 就是对mybatis-plus的配置
    在这里插入图片描述
    CTRL+左键进入MybatisPlusProperties中发现:
    在这里插入图片描述

  • SqlSessionFactory 自动配置好。底层是容器中默认的数据源
    SpringBoot2整合MyBatis-Plus_第2张图片

  • mapperLocations 自动配置好的,并且有默认值:classpath*:/mapper/**/*.xml;任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是映射文件。(建议以后sql映射文件,放在mapper下)
    在这里插入图片描述

  • 容器中也自动配置好了 SqlSessionTemplate -> SqlSession
    在这里插入图片描述

  • 标了@Mapper的接口都会被自动扫描进来,个人建议直接**@MapperScan**(“指定扫描的路径”) 批量扫描就行

总的来说:

  • 只需要我们的mapper继承了 BaseMapper 就可以拥有**crud(增删改查)**功能
    SpringBoot2整合MyBatis-Plus_第3张图片

编写一个小测试查看MyBatis-Plus的运行是否顺利:

在测试类中写入:
SpringBoot2整合MyBatis-Plus_第4张图片
运行结果:(很顺利!!!哎呦,不错哦!!)
在这里插入图片描述

3、MyBatis-Plus实现crud功能(示例代码)

完整具体实现:

  • 框架结构:
    SpringBoot2整合MyBatis-Plus_第5张图片
  1. pojo:

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class User {
        private int id;
        private String name;
        private int age;
        private String email;
    
    }
    
  2. dao:

    @Mapper
    public interface UserMapper extends BaseMapper<User> {
    }
    
  3. service:
    -接口:

    public interface UserService extends IService<User> {
    
    }
    

    -实现类

    @Service
    public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    
    }
    
  4. controller:

    //博主只列举出了几个方法,同学们可以尝试测试更多方法噢!!
    @Controller
    public class UserController {
        @Autowired
        UserService userService;
    
        //查找一个对象
        @ResponseBody
        @GetMapping("/getUser")
        public User getUser(@RequestParam("id")int id){
            User user = userService.getById(id);
            return user;
        }
    
        //删除一个对象
        @ResponseBody
        @GetMapping("/deleteUser")
        public String deleteUser(@RequestParam("id")int id){
            boolean b = userService.removeById(id);
            if (b){
                return "删除成功!";
            }
            return "删除失败";
        }
    }
    

你可能感兴趣的:(MyBatis,SpringBoot2,Mybatis-Plus,java,数据库架构,spring,boot)