java中List分页的几种方法介绍

网友投稿 676 2022-09-11


java中List分页的几种方法介绍

目录1.根据入参带分页参数进行sql查询分页2.对所有list根据分页参数分页3.PageHelper分页

1.根据入参带分页参数进行sql查询分页

Criteria criteria = new Criteria();

//将dataAuto转成 factoryId brandId seriesId 等查询条件

String dataAuth = "";

TypeCaseHelper.dataAuto(criteria, dataAuth);

// 设置分页信息

ExtPager pager = new ExtPager();

Integer startTure = start * pageSize;

criteria.setmysqlPageSize(pageSize);

criteria.setMysqlStart(startTure);

// 排序信息

if (StringUtils.isNotBlank(pager.getDir()) && StringUtils.isNotBlank(pager.getSort())) {

criteria.setOrderByClause(pager.getSort() + " " + pager.getDir());

}

List listDistinct = getVhlAlarmStatusMgtEntities(vin, faultStatus, confirmStatus, startDateTime, endDateTime, sdf, sdfm, carTypeList, criteria);

对应的分页sql

select

from status_mgt

and car_type in

#{item}

and alarm_time >= str_to_date(#{condition.startDateTime,jdbcType=VARCHAR},'%Y-%m-%d %H:%i:%S')

and str_to_date(#{condition.endDateTime,jdbcType=VARCHAR},'%Y-%http://m-%d %H:%i:%S') >= alarm_time

and logic_flag = 1

order by alarm_time desc

limit #{mysqlStart}, #{mysqlPageSize}

2.对所有list根据分页参数分页

Criteria criteria1 = new Criteria();

List listDistinctForCout = getVhlAlarmStatusMgtEntities(vin, faultStatus, confirmStatus, startDateTime, endDateTime, sdf, sdfm, carTypeList, criteria1);

Integer count = listDistinctForCout.size(); // 记录总数

Integer pageCount; // 页数

if (count % pageSize == 0) {

pageCount = count / pageSize;

} else {

pageCount = count / pageSize + 1;

}

int fromIndex; // 开始索引

int toIndex; // 结束索引

if (!pageCount.equals(start+1)) {

RwXOe fromIndex = start * pageSize;

toIndex = fromIndex + pageSize;

if(toIndex > count){

fromIndex = (start-1) * pageSize;

toIndex = count;

}

} else {

fromIndex = start * pageSize;

toIndex = count;

}

List pageList = listDistinctForCout.subList(fromIndex, toIndex);

3.PageHelper分页

//开启分页

PageHelper.startPage(Integer.parseInt(pageNum), Integer.parseInt(pageSize));

PageInfo> pageInfo = new PageInfo(datalist);

HashMap map= new HashMap<>();

map.put("datalist", datalist);

map.put("total", pageInfo.getTotal());

map.put("size", pageInfo.getPageSize());

map.put("page", pageInfo.getPageNum());


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决CATIA软件(license)许可证不足,管理不规范,盗版问题(catia软件安装后说没有许可证,怎么办)
下一篇:爱奇艺奇秀直播 - 千万级黑产风控平台搭建(爱奇艺奇秀直播怎么关闭)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~