Spring Boot 使用 Mybatis-Plus

1,463 阅读3分钟

一、Mybatis-Plus 概述

Mybatis-Plus 支持非常多的数据库,常规的有 MySQLH2SQLiteSQLServer 等等。

这边我将使用 H2 数据库做一次测试。

二、本地 H2 数据的配置

2.1 下载和配置 H2 数据库

H2数据库官网:www.h2database.com/html/main.h…

在本地用户目录底下新建一个文件 test.mv.dtest表示数据库名称,你可以自定义名称。

在本地H2 目录下找到 h2\bin\h2.bat文件,这个是 windows 控制台的启动脚本,双击运行,会启动 H2Web 控制台。

点击测试连接,如果测试成功,记下驱动类、JDBC URL、用户名和密码。

2.2 IDEA 连接 H2 数据库

先在 pom.xml中引入依赖

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.1.210</version>
            <scope>runtime</scope>
        </dependency>

IDEA 的数据库选项卡中新建「数据源」,选择 H2 数据源。

然后填入刚才的那些数据,最后测试一下连接。

2.3 新建表和插入数据

2.3.1 新建表

右键数据库点击「跳转到查询控制台」,输入创建表的命令:

create table user_test
(
	id int primary key not null,
	name varchar(30) null,
	age int null,
	email varchar(50) null
)

执行完毕,输入一下显示表的命令:

show tables

发现已经新建了表。

2.3.2 插入数据

输入插入的 sql 语句:

insert into user_test(id, name, age, email)
values
(1, 'Jone', 18, 'yunhu1@gmail.com'),
(2, 'Jack', 20, 'yunhu2@gmail.com'),
(3, 'Tom', 28, 'yunhu3@gmail.com'),
(4, 'Sandy', 21, 'yunhu4@gmail.com'),
(5, 'Billie', 24, 'yunhu5@gmail.com');

插入执行完毕后,执行查看表的命令:

select * from user_test

三、Mybatis-Plus 的配置

3.1 项目结构

├─main
│  ├─java
│  │  └─com
│  │      └─example
│  │          └─mybatisplusdemo
│  │              │  MybatisplusdemoApplication.java
│  │              │  
│  │              ├─controller
│  │              │      UserController.java
│  │              │      
│  │              ├─entity
│  │              │      User.java
│  │              │      
│  │              └─mapper
│  │                      UserMapper.java

3.2 引入依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
				
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

3.3 在 application.yml 配置文件中添加 H2 的相关配置

server:
  port: 8080 # 端口号

spring:
  datasource:
    driver-class-name: org.h2.Driver # 驱动类
    url: jdbc:h2:tcp://localhost/~/test # JDBC URL
    username: sa # 用户名
    password:  # 密码

3.4 添加 user.java 数据实体类

在包目录下新建 entity 目录,用来存放数据实体类,然后在 entity 目录下新建 User.java

package com.example.mybatisplusdemo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

/**
 * User 数据实体类
 * @author 云胡
 * @date 2022-04-18
 */

@Data
@TableName("user_test")  //将对象和表进行关联
public class User {
    @TableId("id")
    private Long id;

    @TableField("name")
    private String name;

    @TableField("age")
    private Integer age;

    @TableField("email")
    private String email;
}

@Datalombok.jar包下的注解,之后就不需要写出 setget 方法。

@TableName实现实体类和数据库中的表两者之间的映射。

@TableId是主键字段的注解。

@TableField是非主键字段注解。

3.5 编写 UserMapper.java 接口

在包目录底下新建一个 mapper 目录,用来存放数据访问类,然后新建 UserMapper.java 文件。

package com.example.mybatisplusdemo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatisplusdemo.entity.User;
import org.apache.ibatis.annotations.Mapper;

/**
 * UserMapper 数据访问接口
 * @author 云胡
 * @data 2022-04-18
 */

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

@Mapper用在接口类上,后续才可以被 controller类使用。

3.6 编写 UserController.java 类

在包目录底下新建一个controller 目录,用来存放控制类,然后新建一个 UserController.java文件。

package com.example.mybatisplusdemo.controller;

import com.example.mybatisplusdemo.entity.User;
import com.example.mybatisplusdemo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * User 控制类
 * @author 云胡
 * @date 2022-04-18
 */

@RestController
public class UserController {
    @Autowired
    private UserMapper userMapper;

    @GetMapping("/showUser")
    public List<User> showUser(){
        List<User> list = userMapper.selectList(null);
        System.out.println(list);
        return list;
    }
}

3.7 结果

运行程序后,打开浏览器输入链接: localhost:8080/showUser可以看到控制台打印了以下数据:

[User(id=1, name=Jone, age=18, email=yunhu1@gmail.com), User(id=2, name=Jack, age=20, email=yunhu2@gmail.com), User(id=3, name=Tom, age=28, email=yunhu3@gmail.com), User(id=4, name=Sandy, age=21, email=yunhu4@gmail.com), User(id=5, name=Billie, age=24, email=yunhu5@gmail.com)]

网页上显示了:

我这边装了 Web 前端助手 FeHelper,所以看到的表的数据被自动格式化了。

四、参考资料

Mybatis-Plus