千家信息网

如何解析Hibernate在JSP下的分页技术

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关如何解析Hibernate在JSP下的分页技术,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这是我知道的代码最少且最简洁的一种Hiber
千家信息网最后更新 2026年11月03日如何解析Hibernate在JSP下的分页技术

这篇文章将为大家详细讲解有关如何解析Hibernate在JSP下的分页技术,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

这是我知道的代码最少且最简洁的一种Hibernate分页技术了,自己懒,所以拼命减少代码量,呵呵。下面用人能看得懂的语言细说一下,关于Hibernate的分页技术,无外乎两种:

1. 从数据库中取得记录,在内存中再划分。但如果遇到记录数很大的时候效率很成问题。

2. 采用Hibernate的物理分页,每次只是取一页。从客户端传进来的是第几页和每页多少条记录,要首先查询符合记录的总记录数,再根据总记录数和当前页,每页记录数可以算出要取的是数据库中的第几条记录。但2次查询不可避免了。

所以总结了两种方式的优劣,如果数据量不是非常大的话(百万以上),采用***种方法,否则可选择第二种。由于我要操作的数据库信息量没有达到大的标准,所以我采用了***种方法,下面细说。

首先看一下我的一个action:

public ActionForward queryZcDoc(ActionMapping mapping, ActionForm form,  HttpServletRequest request, HttpServletResponse response)  {    IZcDocService zcDocService=(IZcDocService)     Application.getInstance().getBean("zcDocServiceProxy");    List docList=zcDocService.queryZcDoc();    request.setAttribute("doc", subMessList);    return mapping.findForward("queryDoc");  }

很简单的代码,就是查询数据,扔到一个List里面,然后setAttribute,再在jsp页面显示就可以了。

接下来谈分页,考虑到了简洁性和通用性,我把分页的代码单独封装到了一个类里面去,下面看看这个类:

public class Fenye {  public List fenye(ActionMapping mapping, ActionForm form,  HttpServletRequest request, HttpServletResponse response){  List list=(ArrayList) request.getAttribute("list");  /*

这里有人可能就看不懂了,为什么要带这些参数?因为我上面的action方法是分页之前的方法,所以不能看出来。

下面贴一下用到分页之后的action方法:

public ActionForward queryZcDoc(ActionMapping mapping, ActionForm form,  HttpServletRequest request, HttpServletResponse response) {  IZcDocService zcDocService=(IZcDocService)Application.getInstance().  getBean("zcDocServiceProxy");  List docList=zcDocService.queryZcDoc();  request.setAttribute("list", docList);  List subMessList=new Fenye().fenye(mapping, form, request, response);  request.setAttribute("doc", subMessList);  return mapping.findForward("queryDoc");  }

和上面的一比较,其实就多了两行代码,为的就是保持页面的简洁性而使用调用的方法,然后再将需要的数据返回。那接着往下看:

*/   List subMessList=null; //这个到时候存的是用分页技术之后的要显示的记录  int showCount =5; //每页显示的记录数。  int showPage = 1; //当前显示页码数。  int size =list.size(); //所取得的数据的总条数。  int pageCount = (size-1)/showCount + 1; //需要显示的总页数  if(size

到了这里,java代码就写完了,不多吧加括号一共33行。接下来就要到jsp里面去显示了。也是为了页面的整洁和通用性,我把分页显示的东东放到了一个jsp里面。下面看这个jsp:

<%@ page language="java" pageEncoding="gb18030"%>  <div align=center>  <br>  <%  String method=request.getParameter("method");

method这个参数呢,是要区别对待具体那个action的那个方法

String action=request.getParameter("action");

action这个参数的作用,看下面就知道了

int showPage = ((Integer)(request.getAttribute("showPage"))).intValue();  int size = ((Integer)(request.getAttribute("size"))).intValue();  int pageCount = ((Integer)(request.getAttribute("pageCount"))).intValue();  int page1=showPage-1;  int page2=showPage+1;  int LastPage=pageCount;  %>  <%  out.println("总共有"+size+"条记录 ");   out.println("总共有"+pageCount+"页 ");  out.println("当前是第"+showPage+"页 ");  if(showPage > 1)  {  out.println("<a href='"+action+".do?method="+method+"&page=1'>***页</a>");  }  else  {  out.println("***页");  }  %>   <%  if(showPage > 1)  {  out.println("<a href='"+action+".do?method="+method+"&page="+page1+"'>上一页</a>");  }   else  {   out.println("上一页");   }  %>  <%  if(showPage < pageCount)  {  out.println("<a href='"+action+".do?method="+method+"&page="+page2+"'>下一页</a>");  }  else  {  out.println("下一页");  }   %>  <%  if(showPage<pageCount)  {  out.println("<a href='"+action+".do?method="+method+"&page="+LastPage+"'>尾页</a>");  }   else  {   out.println("尾页");   }  %>  </div>

关于"如何解析Hibernate在JSP下的分页技术"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

数据 方法 代码 技术 简洁 参数 数据库 篇文章 页面 查询 接下来 就是 更多 简洁性 通用性 面的 上一 不错 实用 很大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网加科技 互联网科技公司简介 亿人帮互联网科技有限公司 广州万易互联网科技有限公司 金融科技还是互联网 互联网金融与金融科技 互联网科技公司怎么样 善班互联网科技 互联网科技有限公司 翻译 科技大学互联网专业好不好 互联网和高科技公司 博兴的互联网电子科技公司 现代科技和互联网有关系吗 恒生互联网科技指数跳水 燊美集互联网科技有限公司 华夏恒生科技与互联网科技 互联网时代的科技公司 杭州披云加互联网科技有限公司 陕西云淼互联网科技公司 山东亿川互联网科技有限责任公司 互联网科技园 碳银互联网科技有限公司 多迪互联网科技有限公司 互联网科技股午盘股票涨跌 港股科技和互联网 高科技互联网套路 2021互联网科技公司排名 广州互联网高科技取餐柜 全球科技与互联网公司市值变化 山东蛋芒互联网科技有限公司
0