分页要那些条件?
总页数,当前页,还有每页的信息数:pageSize
有了这三个,分页就ok了
在ibatis 里面 应该怎么操作呢 ?下面是ibatis的xml配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
................
上面的是对应数据库里面的一个表的配置,HOURLY_DEAL是对应的表名
resultMap id="hourlyDealDOResult"是表对应的类在 xml 里面的id号
column="ID" property="id" ---这个自己看了呵呵
找到xml文件里面的 对应 分页语句:
<select id="queryHourDeal" resultMap="hourlyDealDOResult" parameterClass="java.util.HashMap">
PAGINATION.paginationStart" />
SELECT ID,
。。。。
FROM WS_DEAL
order by id asc
PAGINATION.paginationEnd" />
>
---这里的select 是根据sql语句来定的,同样也有update,delete 等相应的操作
这里两个红色的参数是需要传进来的翻页的开始页和结束的页。以前也写过翻页,还需要总页数!这个已经在该语句里面实现了:
select * form. (
select * from table
) where starRow < paginationStart and endRow > paginationEnd
就是说实现ibatis的分页,只需要传进来两个参数:
public List queryHourDeal(int page, int pageSize) {
int startRow = 1;
int endRow = pageSize;
if (page != 1) {
startRow = (page - 1) * pageSize + 1;
endRow = startRow + pageSize - 1;
}
return hourlyDealDao.queryHourDeal(startRow, endRow);
}
蓝色部分就是对应的调用 dao里面的 ibatis 函数:
public List queryHourDeal(int startRow, int endRow) {
Map paramap = new HashMap();
paramap.put("startRow", startRow);
paramap.put("endRow", endRow);
return getSqlMapClientTemplate().queryForList("HOURLY_DEAL.queryHourDeal", paramap);
}
注意:上面的蓝色的 startRow, endRow 的格式必须是这样规定的,要不ibatis不会识别出来!!!!----这是ibatis 底层已经写好的
最后生产上一页和下一页的url ,信息全部封装在一个PageNavigationDto对象里面:
private PageNavigationDto getPageInfo(int page, int pageSize,PageNavigationDto pageNavigationDto) {
pageNavigationDto.setPageInfo(page, pageSize);
int totalCount = hourDealService.getTotalCount();
pageNavigationDto.setTotalCount(totalCount);
int more = totalCount%pageSize;
int endPage = 0;
if(more == 0){
endPage = totalCount/pageSize;
pageNavigationDto.setEndPage(endPage);
}else{
endPage = totalCount/pageSize + 1;
pageNavigationDto.setEndPage(endPage);
}
pageNavigationDto.setCurrentPage(page);
if(page!=1){
if(endPage!=page){
pageNavigationDto.setLastPage(page-1);
pageNavigationDto.setNextPage(page+1);
}
else{
pageNavigationDto.setLastPage(page-1);
pageNavigationDto.setNextPage(page);
}
}else{
if(endPage!=page){
pageNavigationDto.setLastPage(page);
pageNavigationDto.setNextPage(page+1);
}
else{
pageNavigationDto.setLastPage(page);
pageNavigationDto.setNextPage(page);
}
}
pageNavigationDto.setLastUrl("/hourlydeal/relation.htm?page="+ pageNavigationDto.getLastPage());
pageNavigationDto.setNextUrl("/hourlydeal/relation.htm?page="+ pageNavigationDto.getNextPage());
return pageNavigationDto;
}
---------------over
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11134734/viewspace-659495/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11134734/viewspace-659495/