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功能(示例代码)
完整具体实现:
- 框架结构:
-
pojo:
@Data @NoArgsConstructor @AllArgsConstructor public class User { private int id; private String name; private int age; private String email; }
-
dao:
@Mapper public interface UserMapper extends BaseMapper<User> { }
-
service:
-接口:public interface UserService extends IService<User> { }
-实现类
@Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
-
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 "删除失败"; } }