SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」
鹿老师的Java笔记 人气:0
![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305210955270-1925372518.png)
> **有天上飞的概念,就要有落地的实现**
>
> - 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍
>
> - 先赞后看,养成习惯
**SpringBoot 图文教程系列文章目录**
1. [SpringBoot图文教程1「概念+案例 思维导图」「基础篇上」](https://mp.weixin.qq.com/s/phk6j3ChBP-kPtS2xZeEZg)
2. [SpringBoot图文教程2—日志的使用「logback」「log4j」](https://mp.weixin.qq.com/s/7Mw_xhFF4Q5NtdtcsHc67Q)
3. [SpringBoot图文教程3—「‘初恋’情结」集成Jsp](https://mp.weixin.qq.com/s/BYzVg5NBcF_ou_PyX8ygag)
4. [SpringBoot图文教程4—SpringBoot 实现文件上传下载](https://mp.weixin.qq.com/s/6ctykPo3eDBEB7YsC0PAZw)
5. [SpringBoot图文教程5—SpringBoot 中使用Aop](https://mp.weixin.qq.com/s/17qMRlv_mUfwkcVD05Bh2g)
6. [SpringBoot图文教程6—SpringBoot中过滤器的使用](https://mp.weixin.qq.com/s/r2BO4UMNRAw_REA6nNFLKw)
7. [SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有](https://mp.weixin.qq.com/s/YpDhuOTpt1vjYjnhnK8YdQ)
8. [SpringBoot图文教程8 — SpringBoot集成MBG「代码生成器」](https://mp.weixin.qq.com/s/uGYO4fkw03Kxpfp_PIA8rQ)
9. [SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」](https://mp.weixin.qq.com/s/BXfxhO5rFFg6XZQ0rZgGMg)
10. [SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」](https://mp.weixin.qq.com/s/8Yqfn27UCFP2lU3_IYb5AQ)
## 前言
在使用Mybatis进行项目开发的时候,最繁琐的事情就是实体类,dao接口,mapper.xml文件的编写,几乎每个表都需要对应写一套,并且大部分的工作量都在最基本的增删改查上。如果表中的字段进行了修改,那么实体类,mapper文件甚至dao接口都要进行修改。
![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305210956498-1104293424.png)
**在之前的文章中介绍了 MBG(Mybatis 代码生成器) 的使用,今天带来更进一步的简化Mybatis开发的工具 MybatisPlus,后续还会有 通用Mapper,总有一款适合你。**
## MybatisPlus
> MybatisPlus 可以认为一个Mybatis的外挂,用了这个技术之后 可以不写mapper文件 可以不写dao接口中的方法 然后实现增删改查 分页查询 条件查询 等等
>
### 什么是Mybatis Plus
[MyBatis-Plus](https://github.com/baomidou/mybatis-plus)(简称 MP)是一个 [MyBatis](http://www.mybatis.org/mybatis-3/) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
> 在 MyBatis 的基础上只做增强不做改变
>
> 意味着 如果你导入了Mybatisplus的依赖 但是不想用Mybatisplus的方法 ,那么 不会影响到Mybatis的正常使用
>
> 官方文档:https://mp.baomidou.com/guide/crud-interface.html#page
### MybatisPlus的使用
#### 集成项目
1. 导入Mybatisplus的依赖
> **注意:要首先删除Mybatis的依赖**,因为Mybatisplus中包含有Mybatis的依赖 不需要独立导入 容易jar包冲突
>
> ![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305210958565-447167527.png)
```
```
2. 修改配置文件
![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305210959510-482366574.png)
#### 通过MybatisPlus实现增删改查
> 教程新手向,只讲解Mybatis最常用,最基本的API,更多的操作请参考官方文档
> **demo使用到的数据库库表如下**
> ![](https://img2020.cnblogs.com/blog/1003051/202003/1003051-20200305211002236-578444407.png)
1. 给要数据库操作的实体类加Mybatisplus的注解
> 因为Mybatisplus不需要写mapper文件 不需要写sql 那么Mybatisplus怎么知道实体类和数据库表映射关系(ORM) 通过注解表明这种关系
```
/**
* @TableName("cmfz_admin") 将当前的实体类和数据库的表建立联系
* 注解参数:表名
*/
@TableName("cmfz_admin")
@Data
public class CmfzAdmin implements Serializable {
/**
* 主键属性 @TableId
*
* value 该属性对应的数据库表中的字段名
* type 主键自增的类型 AUTO 代表自动递增
*/
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
/**
* 非主键属性 @TableField
* @TableField("username") 参数为该属性对应的数据库表中的字段名
*
*/
@TableField("username")
private String username;
@TableField("password")
private String password;
}
```
2. 创建dao接口
```java
import com.baizhi.entity.CmfzAdmin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 注意:
* 1.接口中不需要写方法
* 2.接口需要继承MybatisPlus中的类 BaseMapper 泛型为 当前dao对应的实体类
*/
public interface CmfzAdminDao extends BaseMapper
加载全部内容