1、Mybatis-Plus 簡介
1.1、什麼是 Mybatis-Plus
Mybatis-Plus(簡稱 MP)是一個 Mybatis 的增強工具,在 Mybatis 的基礎上只做增強不做改變,爲簡化開發、提高效率而生。
1.2、Mybatis-Plus有什麼用?
使用 Mybatis-Plus 工具,我們只需要將我們定義的抽象接口,繼承一個公用的 BaseMapper 接口,就可以獲得一組通用的 crud 方法來操作數據庫!!!
使用 Mybatis-Plus 時,甚至不需要任何的 xml 映射文件或者接口方法註解,真正的 dao 層零實現。
1.3、Mybatis-Plus 小結
Mybatis-Plus 只是在 Mybatis 的基礎上,實現了功能增強,讓開發更加簡潔高效。
Mybatis-Plus 並沒有修改 Mybatis 的任何特性。
2 入門示例
2.1、需求
使用 Mybatis-Plus 實現對用戶的 crud 操作
2.2、配置步驟說明
(1)搭建環境(創建項目、導入包)
(2)配置 Mybatis-Plus(基於 Spring 實現)
(3)編寫測試代碼
2.3、配置步驟
2.3.1、第一步:搭建環境
2.3.1.1 前提
創建數據庫環境:
建表語句:
CREATE TABLE `tb_user` (
`id` BIGINT(20) NOT NULL COMMENT '主鍵ID',
`name` VARCHAR(30) DEFAULT NULL COMMENT '姓名',
`age` INT(11) DEFAULT NULL COMMENT '年齡',
`email` VARCHAR(50) DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (`id`)
)
INSERT INTO USER (id, NAME, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');
2.3.1.2 創建項目
創建一個空的 maven 工程(工程將以mysql作爲默認數據庫進行演示)
2.3.1.4 添加依賴
引入 Spring Boot Starter 父工程:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/>
</parent>
引入 spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、lombok、mysql依賴:
<dependencies>
<!-- 導入SpringBoot依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 測試 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
<!-- Mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
<build>
<!-- 插件 -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
配置
在 resources文件下application.yml 配置文件中添加Mysql 數據庫的相關配置:
# DataSource Config
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8
username: root
password: root
driverClassName: com.mysql.jdbc.Driver
在 Spring Boot 啓動類中添加 @MapperScan 註解,掃描 Mapper 文件夾:
@SpringBootApplication
@MapperScan("cn.lbw.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.3.2 第二步:創建 User 實體類
說明:使用 Mybatis-Plus 可以不使用 xml 文件,而是基於一組註解來解決實體類和數據庫表的映射問題。
@TableName(value=“tb_user”) 指定對應的表,表名和類名一致時,可以省略 value 屬性。
@TableId 指定表的主鍵。Value 屬性指定表的主鍵字段,和屬性名一致時,可以省略。Type指定主鍵的增長策略。
@TableField 指定類的屬性映射的表字段,名稱一致時可以省略該註解。
編寫實體類User.java:(此處使用了 Lombok 簡化代碼)
@Data
@TableName(value = "tb_user")
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
編寫Mapper類 UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}
添加測試類,進行功能測試:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleTest {
@Resource
private UserMapper userMapper;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
UserMapper 中的 selectList() 方法的參數爲 MP 內置的條件封裝器 Wrapper,所以不填寫就是無任何條件
控制檯輸出:
通過以上幾個簡單的步驟,我們就實現了 User 表的 CRUD 功能,甚至連 XML 文件都不用編寫!
從以上步驟中,我們可以看到集成MyBatis-Plus非常的簡單,只需要引入 starter 工程,並配置 mapper 掃描路徑即可。