SpringBoot圖文教程11—從此不寫mapper檔案「SpringBoot整合MybatisPlus」
阿新 • • 發佈:2020-03-06
![](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 Ba