MyBatis-Plus用法介绍

MyBatis-Plus 是一个为了简化开发、提高效率而生的 MyBatis 增强工具,在 Java 中被广泛使用。它不仅继承了 MyBatis 的所有特性,还增加了强大的功能,如自动生成 SQL、内置通用 Mapper、自动分页等。下面,我将详细介绍 MyBatis-Plus 的用法。

1. 引入依赖

首先,在 Maven 的 pom.xml 文件中添加 MyBatis-Plus 的依赖:

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

2. 配置数据源

在 Spring Boot 的 application.ymlapplication.properties 文件中配置数据源:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root

3. 创建实体类

创建一个实体类,如 User,并使用 MyBatis-Plus 提供的注解来映射数据库表:

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

@Data
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

4. 创建 Mapper 接口

创建一个 Mapper 接口,继承 MyBatis-Plus 提供的 BaseMapper 接口:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

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

通过继承 BaseMapper,你可以获得一系列 CRUD 方法,如 insertdeleteByIdupdateByIdselectById 等。

5. 使用 Mapper

现在,你可以在 Service 层中注入 UserMapper 并使用它:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }

    public void addUser(User user) {
        userMapper.insert(user);
    }

    // 其他 CRUD 方法
}

6. 分页查询

MyBatis-Plus 提供了内置的分页插件,使用非常简单:

Page<User> page = new Page<>(1, 10);
userMapper.selectPage(page, new QueryWrapper<User>().eq("name", "John"));

这将返回第一页,每页 10 条记录,且只返回名字为 "John" 的用户。

7. 动态 SQL

MyBatis-Plus 提供了强大的动态 SQL 功能,可以轻松构建复杂的 SQL 查询:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John")
           .or()
           .like("email", "example.com");
List<User> users = userMapper.selectList(queryWrapper);

8. 乐观锁

MyBatis-Plus 支持乐观锁,只需在实体类中添加一个 @Version 注解的字段即可:

@Data
public class User {
    // ...
    @Version
    private Integer version;
}

在更新时,MyBatis-Plus 会自动检查版本号,确保数据的一致性。

9. 代码生成器

MyBatis-Plus 提供了一个代码生成器,可以自动生成 Entity、Mapper、Mapper XML、Service、ServiceImpl 和 Controller:

AutoGenerator mpg = new AutoGenerator();
// 设置全局配置
// 设置数据源配置
// 设置包配置
// 设置策略配置
// 执行生成
mpg.execute();

这大大提高了开发效率。

10. 总结

MyBatis-Plus 是一个强大的 MyBatis 增强工具,提供了自动生成 SQL、内置通用 Mapper、自动分页等功能,大大简化了开发过程,提高了开发效率。掌握 MyBatis-Plus 的用法,可以让你在 Java 后端开发中更加得心应手。

正文到此结束
评论插件初始化中...
Loading...