spring boot 使用Mybatis-plus查询方法解析

Spring Boot使用Mybatis-Plus查询方法解析

Mybatis-Plus简介

Mybatis-Plus是一个Mybatis的增强工具,在Mybatis的基础上扩展了一些实用的功能,例如分页、逻辑删除、自动填充等。

配置Mybatis-Plus

在Spring Boot项目中使用Mybatis-Plus需要先配置相关依赖,可以在pom.xml文件中添加如下依赖:

<!-- Mybatis-Plus 核心依赖 -->
<dependency>
    <groupId>com.baomidou.mybatisplus</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.1</version>
</dependency>
<!-- Mybatis-Plus 代码生成器依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.3.1</version>
</dependency>

创建实体类和Mapper

在使用Mybatis-Plus之前需要先创建实体类和Mapper,这里以一个用户管理系统为例,创建一个User实体类和对应的UserMapper接口:

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
    private Long managerId;
    private LocalDateTime createTime;
}

public interface UserMapper extends BaseMapper<User> {
}

其中,User实体类中的属性对应数据库中的列名,UserMapper继承自Mybatis-Plus的BaseMapper接口,已经提供了基本的增删改查方法。

自定义Mybatis-Plus查询方法

Mybatis-Plus提供了一些内置的查询方法,例如selectById()selectOne()selectList()等,但有时候我们需要自定义一些查询方法,这时候可以使用Mybatis-Plus的查询构造器来实现。

简单查询

通过查询构造器可以实现复杂的条件查询,例如按照姓名、年龄查询用户信息:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> getUserList(String name, Integer age) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        // 查询条件
        queryWrapper.eq("name", name);
        queryWrapper.eq("age", age);
        return userMapper.selectList(queryWrapper);
    }
}

可以看到,在getUserList()方法中使用了QueryWrapper来构建查询条件,然后调用userMapper.selectList()方法执行查询操作。

分页查询

使用分页查询可以很方便地实现分页功能,Mybatis-Plus已经封装了分页的方法,只需要在查询构造器中添加分页条件即可。

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public Page<User> getUserListPage(Integer pageNum, Integer pageSize) {
        Page<User> page = new Page<>(pageNum, pageSize);
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        // 查询条件
        queryWrapper.eq("age", 18);
        // 执行分页查询
        return userMapper.selectPage(page, queryWrapper);
    }
}

可以看到,在getUserListPage()方法中先创建了一个Page对象,用于存储分页信息,然后在查询构造器中添加查询条件,最后调用userMapper.selectPage()方法执行分页查询操作。

示例

这里提供两个使用查询构造器实现的查询示例。

示例1:按照姓名、年龄查询用户信息

@GetMapping("/list")
public List<User> getUserList(@RequestParam String name, @RequestParam Integer age) {
    return userService.getUserList(name, age);
}

示例2:分页查询年龄为18岁的用户信息

@GetMapping("/page")
public Page<User> getUserListPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
    return userService.getUserListPage(pageNum, pageSize);
}

小结

通过上述示例,我们可以发现使用Mybatis-Plus的查询构造器可以很方便地实现复杂的条件查询和分页查询,大大简化了开发的复杂度。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot 使用Mybatis-plus查询方法解析 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 一起来了解Java的File类和IO流

    一起来了解Java的File类和IO流 File类 Java中的File类是一个用于操作文件和目录的类。使用File类可以实现文件的创建、删除、重命名、遍历等操作。File类的构造函数可以传入一个文件路径字符串或者一个URI,用于表示文件或者目录的路径。下面是一些常用的File类的操作示例: 创建和删除文件 File file = new File(&quo…

    Java 2023年5月19日
    00
  • Java下Struts框架中的ActionForm类详解

    Java下Struts框架中的ActionForm类是用于从客户端浏览器向服务器端传递数据的载体。这个类作为中介,把客户端提交的数据(如表单数据)封装为一个JavaBean对象,然后该Bean就可以在服务器端通过Struts框架进行处理。 下面是ActionForm的使用步骤: 1. 定义ActionForm类 ActionForm类需要继承org.apac…

    Java 2023年5月20日
    00
  • 结合Service层讲解DAO层的异常处理操作

    让我详细讲解一下“结合Service层讲解DAO层的异常处理操作”的攻略。 首先,我们需要理解DAO(Data Access Object)层的作用。DAO层的主要任务是实现数据的持久化操作,负责与数据库交互,为上层提供数据访问接口。在实现DAO层的过程中,异常处理也是至关重要的一部分。 DAO层的异常处理分为两种情况: SQL异常 SQL异常是指在数据库操…

    Java 2023年5月27日
    00
  • java String 类的一些理解 关于==、equals、null

    下面是关于Java String类的一些理解。 1. == 在Java中,== 表示引用的等价性,比较两个对象是否是同一个对象的引用。如果两个引用指向同一个对象,那么它们是等价的。例如: String str1 = "hello"; String str2 = "hello"; if (str1 == str2) { …

    Java 2023年5月27日
    00
  • JSON Web Token(JWT)原理入门教程详解

    JSON Web Token(JWT)原理入门教程详解 什么是JSON Web Token(JWT)? JSON Web Token(JWT)是一种安全的身份验证方式,用于在客户端和服务器之间传递声明,以便在客户端和服务器之间进行身份验证和授权。JWT是一种开放标准(RFC 7519),它定义了一种紧凑和自包含的方式用于在各方之间作为JSON对象安全地传输信…

    Java 2023年5月19日
    00
  • 关于spring data jpa 模糊查询like的坑点

    好的。首先让我们讨论一下”关于Spring Data JPA模糊查询Like的坑点”的具体情况。 什么是Spring Data JPA模糊查询Like的坑点? 如果我们想使用Spring Data JPA执行模糊查询(例如使用LIKE操作符),我们需要注意一些事项。这些主要涉及到通配符的使用和查询条件的拼接。 通配符的使用 在使用LIKE操作符时,我们需要使…

    Java 2023年5月20日
    00
  • Spring Data JPA进行数据分页与排序的方法

    下面是使用Spring Data JPA进行数据分页与排序的完整攻略: 准备工作 首先需要在项目的pom.xml文件中引入spring-data-jpa和数据库驱动,例如: <dependency> <groupId>org.springframework.data</groupId> <artifactId>…

    Java 2023年5月20日
    00
  • Java用文件流下载网络文件示例代码

    Java中使用文件流下载网络文件可以通过以下步骤完成: 1.通过URL类创建网络文件的输入流(InputStream)2.创建本地文件的输出流(OutputStream)3.从网络文件的输入流中读取数据并将其写入本地文件的输出流中4.关闭输入流和输出流 具体实现步骤如下所示: 示例1:使用Java标准库实现 import java.io.InputStrea…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部