Skip to content

SpringBoot 配置 MyBatis-Plus 并连接 MySQL

1. 新建 user 表用于示例

sql
USE shop;

CREATE TABLE user (
    id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 引入依赖

在 pom.xml 文件中添加 MyBatis-Plus 和 MySQL 驱动的依赖:

xml
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.32</version>
</dependency>

3. 配置数据源

在 application.properties 文件中添加 MySQL 数据库的连接信息:

properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456

其中

spring.datasource.driver-class-name 是 JDBC 驱动类的名称,

spring.datasource.url 是数据库的连接字符串,

spring.datasource.usernamespring.datasource.password 是数据库的登录信息。

4. 配置 MyBatis-Plus

config包下创建 MyBatis-Plus 的配置类,并添加 @Configuration@MapperScan 注解:

java
@Configuration
@MapperScan("com.example.shop.mapper")
public class MybatisPlusConfig {
}

其中,@MapperScan 注解指定了 MyBatis-Plus Mapper 接口所在的包名。

5. 创建实体类

com.example.shop.entity 包下创建实体类:

java
@Data
public class User {
    private Long id;
    private String username;
    private String password;
    private String email;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

注意要在类上添加 @TableName 注解,指定实体类对应的表名:

java
@Data
@TableName("user")
public class User {
    // ...
}

TIP

@Data 注解需要 lombok

在 pom.xml 导入依赖

xml
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.26</version>
</dependency>

6. 创建 Mapper 接口

com.example.shop.mapper 包下创建 Mapper 接口:

java
public interface UserMapper extends BaseMapper<User> {
}

UserMapper 接口继承了 BaseMapper 接口,该接口提供了一些基础的 CRUD 操作。

7. 测试

编写一个测试类,测试 MyBatis-Plus 是否能够正常工作:

java
@SpringBootTest
class MybatisPlusDemoApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void testInsert() {
        User user = new User();
        user.setUsername("admin");
        user.setPassword("123456");
        user.setEmail("admin@example.com");
        user.setCreateTime(LocalDateTime.now());
        user.setUpdateTime(LocalDateTime.now());
        userMapper.insert(user);
        System.out.println(user);
    }

    @Test
    void testSelectById() {
        User user = userMapper.selectById(1L);
        System.out.println(user);
    }

    @Test
    void testSelectList() {
        List<User> userList = userMapper.selectList(null);
        System.out.println(userList);
    }

}

运行测试类,测试插入、查询和列表查询是否正常工作。