分页 java分页 Spring框架

在分页之前,我们先弄明白一个问题,是查询出所有数据再分页,还是只查页面显示的那几条数据呢?

各有利弊!

查询出所有数据再分页,数据会放在缓存中,换页时速度快,但是数据量很大那就不合适了

只查页面显示的几条数据,适合大数据量(推荐这种查询方式

搞清楚了这个问题,我们就可以开始分页了(我们用第二种分页方式,只查页面显示的几条数据):

我们先看一张图:

这是我们分页是经常见到的布局。

1.用到的参数:

countrow          共几条数据

countpage       共几页

nowpage         现在是第几页

firstpage          首页

uppage           上一页

nextpage        下一页

endpage         尾页

wherepage     转到第几页

2.向后台发送请求时需要传递三个参数(根据需要可添加):

fistrow        从第几条开始(fistrow=0表示从第一条)

countrow    查几条数据

nowpage    现在是第几页

说明:页面中我们使用的是iframe框架,关于iframe框架

http://blog.csdn.net/zqd_java/article/details/53924315

3.jsp前端页面:

	<a href="项目路径?nowpage=1&fistrow=0&countrow=5">查询</a>
<div class="updownye">
			<span>共${countrow}条数据</span>
			<span>共<%=countpage%>页,第<%=nowpage%>页</span>
			<a href="项目路径?nowpage=1&fistrow=0&countrow=5">首页</a>  
			<a id="uppage" href="javascript:void(0);">上一页</a>  
			<a id="nextpage" href="javascript:void(0);">下一页</a>  
			<a id="endpage" href="javascript:void(0);">尾页</a>
			<span>转到第<input type="text" οnkeyup="this.value=this.value.replace(/\D/g,'')"  onafterpaste="this.value=this.value.replace(/\D/g,'')"  id="currentPage" value="<%=currentPage%>" class="lineye"/>页</span>
		    <a href="javascript:void(0);" class="goto" id="wherepage">Go</a>
		</div>
4.JavaScript代码:
 <script type="text/javascript">
$(document).ready(function() {
		// 点击前一页
		$("#uppage ").click(function(e){
		  var nowpage= $("#nowpage").val();
		  if (nowpage> 1) {
		   var uppage= parseInt(nowpage) - 1;
		   createView(uppage);
		  }
		});
		// 点击下一页
		$("#nextpage").click(function(e){
		  var nowpage= $("#nowpage").val();
		  var nextPage = parseInt(nowpage) + 1;
		  var countpage = <%=countpage %>;
		  if (nextPage <= countpage ) {
		  	  createView(nextPage);
		  }
		});
		// 点击末页
		$("#endpage").click(function(e){
		  var totalPage = <%=countpage%>;
		  createView(totalPage);
		});
		// 点击go
		$("#goPage").click(function(e){
		  var wherepage= $("#nowpage").val();
		  var totalPage = <%=pageCount%>;
		  if(nowpage> totalPage || currentPage <= 0){
		  	 return;
		  }
		  createView(wherepage);
		});
		
		
	function createView(wherepage){
		var index = (wherepage-1)*5;
		location.href="<%=basePath%>项目路径?wherepage="+wherepage+"&fistrow="+index+"&countrow=5";
 	}
</script>

5.后台代码:

分页:

public void getAllDwList(HttpServletRequest request, String currentPage,
			int firstResult, int maxResults) {
		// TODO Auto-generated method stub
//		List<TbDw> list = tbDwDAO.findAll(tjList);
		Long list = tbDwDAO.findsize(tjList);
		int size  = list.intValue();
		int pageCount = 0;
		if (size%maxResults == 0) {
			pageCount = size/maxResults;
		} else {
			pageCount = size/maxResults + 1;
		}
		if(size == 0) {
			request.setAttribute("currentPage", "0");
		} else {
			request.setAttribute("currentPage", currentPage);
		}
		request.setAttribute("pageCount", pageCount);
		request.setAttribute("totalCount", size);
		request.setAttribute("dw_list", tbDwDAO.findAll2(firstResult,maxResults));
	}
}

查数据:

@Override
	public List findAll2(int firstResult, int maxResults) {
		// TODO Auto-generated method stub
		try {
			String queryString = "from TbDw as model where 1=1 ";
			String queryOrderby = "order by model.dwbh ";
			String queryAnd = "";
			
			queryString = queryString + queryAnd + queryOrderby;
			Query query = sessionFactory.getCurrentSession().createQuery(
					queryString);
			query.setFirstResult(firstResult);
			query.setMaxResults(maxResults);
			return query.list();
		} catch (RuntimeException re) {
			throw re;
		}
	}

因为项目太大,不能详细说明,如有疑问,请留言或关注发私信,一定给解答!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值