springboot项目已有接口和类, public interface PageSortInterface { Integer getPageNum(); Integer getPageSize(); String getSort(); String getOrder(); } public interface MyBaseMapper<T> extends Mapper<T>, MySqlMapper<T>,MyInsertListMapper<T> { } public interface UserMapper extends MyBaseMapper<User> { } springboot项目在有这三个接口的情况下,实现在sql层的分页(使用PageHelper 方式) 引入依赖 <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version>,请问该springboot项目如何实现PageHelper进行有条件的分页查询
时间: 2023-07-09 14:41:07 浏览: 121
您可以按照以下步骤实现PageHelper进行有条件的分页查询:
1. 在需要使用分页查询的方法上添加注解@com.github.pagehelper.PageHelper,指定分页参数pageNum和pageSize。
2. 在需要进行条件查询的方法中添加参数类型为PageSortInterface的参数,用于获取分页和排序参数。
3. 使用PageHelper.startPage方法设置分页参数。
4. 在查询语句中使用条件查询参数,例如使用@org.apache.ibatis.annotations.Param注解获取参数。
5. 使用Mapper中的方法进行查询,例如使用UserMapper的selectByExample方法。
6. 使用PageInfo对查询结果进行包装,获取分页信息和查询结果列表。
以下是示例代码:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
@com.github.pagehelper.PageHelper(pageNum = 1, pageSize = 10)
public PageInfo<User> getUserList(PageSortInterface pageSort, String name) {
// 设置分页和排序参数
PageHelper.startPage(pageSort.getPageNum(), pageSort.getPageSize(), pageSort.getSort() + " " + pageSort.getOrder());
// 构造查询条件
UserExample example = new UserExample();
UserExample.Criteria criteria = example.createCriteria();
criteria.andNameLike("%" + name + "%");
// 查询结果列表
List<User> userList = userMapper.selectByExample(example);
// 返回分页信息和查询结果列表
return new PageInfo<>(userList);
}
}
```
阅读全文