Mybatis-Plus其實是Mybatis的升級版,他簡化了原先mybatis需要手動寫CURD語句轉而繼承BaseMapper來實現。具體變化如下:
1,MyBatis-Plus簡介:MP,是mybatis的增強工具,是基于mybatis上開發的。
特點:
Maven坐標:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version>
</dependency>
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version><relativePath/></parent><groupId>com.itheima</groupId><artifactId>mp-demo</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
配置數據源:
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTCusername: rootpassword: root
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #開啟mp日志,將sql輸出到控制臺
2,CURD接口
我們只需要直接調用就好了:在ymi文件中加入
3,常用注解
@TableName()用來指定當前類對應的數據庫的表名
@TableFile()用來指定當前屬性在數據庫表中對應的字段
@TableId()用來指定當前屬性為數據庫表中的主鍵
示例:
public class User {@TableId(type = IdType.AUTO) //當前id屬性和表的主鍵字段id對應,并且設置主鍵生成策略為AUTOprivate Long id;
}
4,條件構造器(MyBatis-Plus的特色)
我們一般常用:QueryWrapper,UpdateWrapper和LembdaQueryWrapper,LembdaUpdateWrapper兩組條件構造器來進行查詢語句的構造和修改語句的構造
5,擴展功能
(1)邏輯刪除
(2)MP對于Service層的支持
我們只需要在XXService接口上繼承IService和XXServiceImpl接口上繼承ServiceImpl<使用的Mapper, 插入的實體(XX)>
在業務實現類中可以調用 ServiceImpl 中的 getBaseMapper 方法獲得對應的mapper對象
(3)代碼生成器
在生成器中我們一般使用了生成代碼之后還需要做一定的修改,比如生成器中生成的代碼并沒有給mapper加入@Mapper注解,還有需要注意的是在生成的實體類中可能主鍵生成的方法我們在配置文件中有設置,此時我們需要把實體類中的@TableId(type = IdType.AUTO)中括號里面的給注釋掉,從而實現我們使用自己的設置