用hibernate实现数据库底层分页 (转自ejunnet)
2023-10-11 21:45
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) www.gavelz.com();
%>
< 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做分页,如有错误或不好的地方请多多指教!!