SpringBoot2整合MyBatis-Plus

1、什么是MyBatis-Plus

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

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

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

2、整合MyBatis-Plus

1. 导入MyBatis-Plus的场景:

```xml
<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
</dependency>
```

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

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

  • SqlSessionFactory 自动配置好。底层是容器中默认的数据源
    在这里插入图片描述

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

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

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

总的来说:

  • 只需要我们的mapper继承了 BaseMapper 就可以拥有**crud(增删改查)**功能
    在这里插入图片描述

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

在测试类中写入:
在这里插入图片描述
运行结果:(很顺利!!!哎呦,不错哦!!)
在这里插入图片描述

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

完整具体实现:

  • 框架结构:
    在这里插入图片描述
  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 "删除失败";
        }
    }
    
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

springboot大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值