mybatisplus 分页 多字段动态排序
时间: 2023-09-06 14:09:20 浏览: 151
MyBatis-Plus提供了非常方便的分页和排序功能,可以通过Wrapper来构建动态查询条件,同时也支持多字段动态排序。下面是一个示例代码,假设我们要查询用户表,并且支持按照用户名和创建时间进行动态排序:
```java
// 构建分页请求
Page<User> page = new Page<>(pageNum, pageSize);
// 构建查询条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(username), "username", username)
.orderBy(StringUtils.isNotBlank(sortField), sortField, sortOrder.equals("asc"));
// 执行查询
userMapper.selectPage(page, wrapper);
// 返回分页结果
return new PageResult<>(page);
```
上面的代码中,`pageNum`和`pageSize`表示当前页码和每页记录数,`username`、`sortField`和`sortOrder`分别表示查询条件中的用户名和排序字段,以及排序方式(升序或降序)。在构建查询条件时,我们使用了`QueryWrapper`对象,并通过`like`方法设置了用户名的模糊查询条件,通过`orderBy`方法设置了排序字段和排序方式。最后,我们调用`selectPage`方法执行查询,并将查询结果封装成`PageResult`对象返回。
需要注意的是,以上示例代码中的`userMapper`是MyBatis-Plus自动生成的Mapper接口,需要事先定义好对应的实体类和Mapper接口。
阅读全文