lambdaquerywrapper怎么实现分页
时间: 2023-05-26 14:06:45 浏览: 109
LambdaQueryWrapper 提供了两种方式进行分页,分别是 limit 和 page:
1. limit 方式:
使用 .last("LIMIT "+offset+","+limit) 方法可以实现使用 limit 分页,其中 offset 为偏移量,limit 为每页的数据量。
例如,下面的代码会返回第 10~20 条数据:
```
int offset = 10;
int limit = 10;
List<User> userList = new LambdaQueryWrapper<User>().last("LIMIT "+offset+","+limit).list();
```
2. page 方式:
使用 .page(pageNo, pageSize) 方法可以实现使用 page 分页,其中 pageNo 为当前页码,pageSize 为每页的数据量。
例如,下面的代码会返回第 2 页的数据,每页显示 10 条数据:
```
int pageNo = 2;
int pageSize = 10;
IPage<User> userPage = new LambdaQueryWrapper<User>().page(new Page<User>(pageNo, pageSize));
List<User> userList = userPage.getRecords();
```
相关问题
LambdaQueryWrapper实现分页
LambdaQueryWrapper是MyBatis-Plus框架提供的一个查询条件构造器,用于简化数据库查询操作。它可以通过链式调用的方式,构建出复杂的查询条件,并支持分页查询。
要实现分页查询,可以使用LambdaQueryWrapper的`page`方法。该方法接受两个参数:当前页码和每页显示的记录数。下面是一个示例代码:
```java
// 导入相关的类
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
// 创建LambdaQueryWrapper对象
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
// 设置查询条件
queryWrapper.eq(User::getGender, "男");
// 创建Page对象,指定当前页码和每页显示的记录数
Page<User> page = new Page<>(1, 10);
// 调用selectPage方法进行分页查询
Page<User> resultPage = userMapper.selectPage(page, queryWrapper);
// 获取查询结果
List<User> userList = resultPage.getRecords();
```
在上述示例中,首先创建了一个LambdaQueryWrapper对象,并设置了查询条件(这里以性别为例)。然后创建了一个Page对象,指定了当前页码和每页显示的记录数。最后调用selectPage方法进行分页查询,并通过getRecords方法获取查询结果。
LambdaQueryWrapper 去重分页查询
LambdaQueryWrapper 是 MyBatis-Plus 提供的查询构建器,它支持链式调用,可以方便地构建复杂的查询条件。在使用 LambdaQueryWrapper 进行去重分页查询时,可以通过使用 selectDistinct 方法实现去重,再配合 page 方法实现分页。
下面是一个示例代码:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<User>()
.selectDistinct(User::getName) // 去重字段
.eq(User::getAge, 18) // 其他查询条件
.orderByDesc(User::getId); // 排序条件
Page<User> page = new Page<>(1, 10); // 第一页,每页10条记录
IPage<User> userPage = userService.page(page, queryWrapper);
List<User> userList = userPage.getRecords();
```
以上代码中,我们通过 selectDistinct 方法指定了需要去重的字段(这里是用户的姓名),然后传入其他的查询条件(这里是年龄等于18),最后通过 orderByDesc 方法指定了排序条件(这里是按照用户ID倒序排列)。最后调用 page 方法实现分页,并返回一个 IPage 对象。