java查询数据数据实现分页
1.List数据实现手动分页
List数据实现手动分页
/**
* List实现手动分页
* @param list
* @param pageNum
* @param pageSize
* @param <T>
* @return
*/
public static <T> List<T> paging(List<T> list, int pageNum, int pageSize){
List<T> listSub = new ArrayList<>();
int size = list.size();
//先判断pageNum(使之page <= 0 与page==1返回结果相同)
pageNum = pageNum <= 0 ? 1 : pageNum;
pageSize = pageSize <= 0 ? 0 : pageSize;
int pageStart = (pageNum - 1) * pageSize;//截取的开始位置 pageNum>=1
int pageEnd = size < pageNum * pageSize ? size : pageNum * pageSize;//截取的结束位置
if (size > pageNum) {
listSub = list.subList(pageStart, pageEnd);
}
//防止pageSize出现<=0
pageSize = pageSize <= 0 ? 1 : pageSize;
//总页数
int totalPage = list.size() / pageSize;
return listSub;
}
2.使用pagehelper实现查询分页
首先引用pagehelper依赖
<!--分页容易与mybatis-plus冲突,需要排除依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
@Override
public List<User> userPageList(User user) {
// 开始分页
PageHelper.startPage(user.getPageNum(),user.getPageSize());
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("name",user.getName());
List<User> userList = userMapper.selectList(queryWrapper);
//封装PageInfo对象返回
PageInfo<User> pageInfo = new PageInfo<>(userList);
int size = pageInfo.getSize();
return userList;
}