Mybatis-plus整合SpringBoot

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 掃描路徑即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章