go to index

mybatis plus获取一条记录

read time 2 min read
mybatis java spring

概述

在使用 MyBatis Plus 进行数据库操作时,有时需要获取单条记录。本文将介绍如何使用 MyBatis Plus 的 getOne 方法结合 QueryWrapper 来获取一条记录。

示例代码

获取单条记录的方法

java
default xxx getOnly(QueryWrapper<xxx> wrapper) {
    wrapper.last("limit 1");
    return this.getOne(wrapper);
}

主要原理

主要原理是使用 QueryWrapperlast 方法添加 limit 1 条件,确保查询结果只返回一条记录。

详细步骤

  1. 定义方法

    • 定义一个方法 getOnly,该方法接受一个 QueryWrapper 参数。
  2. 添加 limit 1 条件

    • 使用 wrapper.last("limit 1") 添加 limit 1 条件,确保查询结果只返回一条记录。
  3. 调用 getOne 方法

    • 使用 this.getOne(wrapper) 方法获取单条记录。

示例使用

假设有一个 User 实体类和对应的 UserMapper 接口:

实体类 User

java
public class User {
    private Long id;
    private String name;
    private Integer age;
    // 省略 getter 和 setter 方法
}

Mapper 接口 UserMapper

java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

public interface UserMapper extends BaseMapper<User> {
    default User getOnly(QueryWrapper<User> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }
}

使用示例

java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

public class UserService {
    private UserMapper userMapper;

    public User getUserByName(String name) {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("name", name);
        return userMapper.getOnly(wrapper);
    }
}