1、创建SessionFactory,为了减轻服务器负担,保证一个应用中仅生成一个SessionFactory即可.


























2、实现分页过程
方法getTotalPage()得到总页数, getObject()将所查询的数据封装到list里!




















































代码中page为请求的页面,pagesize为一个页面显示的记录数。
3、应用实例:














//如果请求业面为空或第一次访问时,页面设为1
if (nowpage == null || nowpage.equals(""))nowpage = "1";

//将nowpage转为整型
int mypage = Integer.parseInt(nowpage);
if (mypage <= 0)mypage = 1;


//页面记录数设为10
int pagesize = 10;
String hql = "from ExamStudent";
pageList pl = new pageList();
int totalpage = pl.getTotalPage(hql, pagesize);




//当请求页面大于总页数,则将当前请求页面设为最大页数
if (mypage > totalpage)mypage = totalpage;
ArrayList list = (ArrayList) pl.getObject(hql, mypage,pagesize);
Iterator it = list.iterator();
%>
<html>
<head>
<title>JSP for AddStudentForm form</title>
</head>
<body>
<table border="1">
<tr>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>电话</td>
<td colspan="2">操作</td>
</tr>

<%...
while (it.hasNext()) {
ExamStudent es = (ExamStudent) it.next();
%>
<tr>
<td><%=es.getStudentClassid()%></td>
<td><%=es.getStudentName()%></td>
<td><%=es.getStudentSex()%></td>
<td><%=es.getStudentTel()%></td>
<td><a href="updateStudent.jsp?id=<%=es.getStudentId()%>">修改</a></td>
<td><a href="/exam/deleteStudent?id=<%=es.getStudentId()%>">删除</a></td>
</tr>

<%...
}
list.clear();
%>
<tr>
<td colspan="6"><a href="addStudent.jsp?page=1">首页</a>||<a
href="addStudent.jsp?page=<%=mypage-1%>">上一页</a>||<a
href="addStudent.jsp?page=<%=mypage+1%>">下一页</a>||<a
href="addStudent.jsp?page=<%=totalpage%>">末页</a></td>
</tr>
</table>
</body>
</html>














































页面中page ,nowpage,mypage均为当前请求页面,只是数据类型不同。
//完 第一次用hibernate做分页,如有错误或不好的地方请多多指教!!