Hibernate中的分页显示查询结果
来源:互联网 发布:中铁ca根证书 知乎 编辑:程序博客网 时间:2024/06/08 18:53
Hibernate的Query和Criteria接口都提供了用于分页显示查询结果的方法。
在JavaBean中添加一个实体,实体中添加一个用于初始化分页信息的方法getInitPage(),该方法包括3个参数,分别是用于保存查询结果的List对象list、用于指定茶选关键字的String类型变量username和用于指定每页显示的记录数的int型变量pagesize。该方法的返回值为保存要显示记录的List对象。
public List getInitPage (List list ,String username, int pagesize){
this.pagesize = pagesize;
this.username = username;
Session session = Mysession.opensession();
try{
String hql = “”;
if (username.equals(“”)){
hql = “FROM TbOrder”}
else{
hql = “FROM TbOrder WHERE username = ‘”+username+”’”;}
recordcount = session.createQuery(hql).list().size();//记录总数
list = session .createQuery(hql).setFirstResult(0).setMaxResults(pagesize).list();
//获取最大记录数
this.maxPage = (recordCount % pagesize == 0)? (recordCount / pagesize) : (recordCount / pagesize +1);}
catch (Exception e){
e.printStack Trace ();
System.out.println(” 查询时出现的错误信息: “+e.getMessage() );}
finally{
MySession.closeSession(session);//关闭Session
}
return list;}
在JavaBean实体中添加一个用于获取指定页数据的方法getAppointPage(),该方法只包括一个用于指定当前页数的int型变量Page。该方法的返回值为保存要显示记录的list对象。
public List getAppointPage(int Page){
this.pagesize = pagesize;
this.username = username;
Session session = Mysession.opensession();
try{
String hql = “”;
if (username.equals(“”)){
hql = “FROM TbOrder”}
else{
hql = “FROM TbOrder WHERE username = ‘”+username+”’”;}
recordcount = session.createQuery(hql).list().size();//记录总数
list = session .createQuery(hql).setFirstResult((Page - 1) * pagesize).setMaxResults(pagesize).list();
}
catch (Exception e){
e.printStack Trace ();
System.out.println(” 查询时出现的错误信息: “+e.getMessage() );}
finally{
MySession.closeSession(session);//关闭Session
}
return list;}
在JavaBean实体中添加一个用于获取总记录数的方法getRecordSize(),该方法无参数,返回值为总记录数。
public int getRecordSize () {
return recordCount;}
在JavaBean中添加一个用于获取当前页数的方法getPage(),该方法只有一个用于指定从页面中获取的页数的参数,返回值为处理后的页数。
在JavaBean实体中添加一个用于输出记录导航的方法printlnCtrl(),该方法只有一个用于指定当前页数的参数,返回值为输出记录导航的字符串。
public String printCtrl (int Page ) {
String strHtml = “< table width border cellspacing cellpadding >
当前页数:[” +page + ” / ” +maxPage+ “] ”;
try {
if (page>1){
strHtml = strHtml + “< a href = ‘?Page = 1’>第一页
strHtml = strHtml + “上一页“;}
if (Page < maxPage){
strHtml = strHtml + “下一页
最后一页 ;}
strHtml = strHtml +” ”;}
catch(Exception e){
e.printStackTrace();}
return strHtml;}
然后在要现实查询结果的页面中应用动作调用进行分页显示的JavaBean实体,并将scope属性设置为”session”
再获取传递的当前页数,并根据该确定需要调用的方法获取要显示的数据。
<%
String str = (String) request.getParameter(“Page”);
int Page = 1;
List list = null;
if (str == null ){
if (userName == null || userName.equals(“”)){
userName = “”;}
int pagesize = 5 ; //指定每页现实的记录数
list = pagination.getInitPage(list,userName,pagesize); //初始化分页信息
}else{
Page = pagination.getPage(str);
list = pagination.getAppointPage(page); //获取指定页的数据
} %>
最后通过FOR循环语句输出当前页要现实的记录,并调用实体中的printCtrl()方法现实分页的导航栏
<%
for (int i = 0; i
- Hibernate中的分页显示查询结果
- JSP分页显示查询结果
- jsp分页显示查询结果
- mysql查询结果分页显示
- JSP分页,查询结果分页显示
- Hibernate分页查询oracle数据库显示结果集与实际查询不匹配
- 实现Hibernate分页查询显示
- hibernate之查询(给结果进行分页)
- Struts 中 实现查询结果分页显示
- 查询结果分页显示的SQL语句
- 查询结果分页显示的sql语句
- Struts中实现查询结果分页显示
- SSI框架---实现查询结果分页显示
- 使用select2实现查询结果分页显示
- 数据库查询结果分页显示思路
- 分页后,模糊查询 数据,分页显示结果数据
- 使用valuelist实现查询结果集的分页显示
- php中如何分页显示查询数据结果
- 安卓首页实现广告循环播放广播
- 双十二最大赢家 乐视手机成发展最快国产品牌
- MYSQL性能优化
- 【jQuery】使用remove()和empty()方法删除元素
- 嵌入式文件系统——Cramfs、JFFS2和YAFFS2概述
- Hibernate中的分页显示查询结果
- OC 学习 习题 更多
- python科学计算库安装
- powercmd有内存泄漏
- 94,autorelease的介绍
- 双十二最大赢家 乐视手机成发展最快国产品牌
- Redis的常用命令及高级应用
- 安装Perl语言模块
- 如何获取和修改URL