`

hibernate3.4+struts1.3分页封装,有兴趣者可以看一下

阅读更多
Hibernate3.4+struts1.3分页的封装
环境:hibernate3.4 +struts1.3 +jsp
Page.java
package com.nongxue.util;

public class Page {
private int totalPage;//总页数
private int curPage;//当前页数
public static int maxResult = 2;//每页的最大记录条数
public Page(int toPage,int curPage){
this.setTotalPage(toPage);
this.setCurPage(curPage);
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
if(totalPage == 0){
this.totalPage = 1;
return;
}
this.totalPage = totalPage%maxResult == 0?totalPage/maxResult : totalPage/maxResult+1;
}
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
}
QueryResult.java
package com.nongxue.util;

import java.util.List;

public class QueryResult<T> {
private List<T> records;
private Page page;
public List<T> getRecords() {
return records;
}
public void setRecords(List<T> records) {
this.records = records;
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
}

查询总记录数的代码
public int getArticleAccount(StringBuffer HQL)
{
Session session = new ComonUtil().getSession();
org.hibernate.Transaction tr  = session.beginTransaction();
int temp=0;
        try {
String Hquery = "from Article"+HQL;
Query query = session.createQuery(Hquery);
    temp =query.list().size();
    System.out.println("ddddddddddd"+temp);
    tr.commit();
} catch (HibernateException e) {
tr.rollback();
e.printStackTrace();
} finally{
session.close();
}
        return temp;
}
分页查询代码
public QueryResult<Article> getAllArticle(int page,StringBuffer HQL) {
List<Article> list = new ArrayList<Article>();
Session session =new  ComonUtil().getSession();
org.hibernate.Transaction tr = session.beginTransaction();
QueryResult<Article> queryResult = null;
try {
Page pae = new Page(this.getArticleAccount(HQL),page);
System.out.println("==hql=="+HQL);
String hquery="from Article"+HQL+"order by articleId desc";
System.out.println("=======HQL2======"+hquery);
Query query = session.createQuery(hquery);
query.setFirstResult(Page.maxResult*(page-1));
query.setMaxResults(Page.maxResult);
list = query.list();
queryResult = new QueryResult<Article>();
queryResult.setPage(pae);
queryResult.setRecords(list);
} catch (HibernateException e) {
tr.rollback();
e.printStackTrace();
}
return queryResult;
}
其中ComonUtil().getSession()调用的代码是
public class ComonUtil {
     //拿到session
public Session getSession()
{
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
return session;
}
……

Action中调用
public ActionForward getAllArticleByPage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String forwardName = null;
int page = 0;
try{
page = Integer.parseInt(request.getParameter("page"));
}catch(Exception e){
page = 1;
}
QueryResult<Article> articleList = null;

int stutus =0;
StringBuffer HQL = new StringBuffer();
//判断是否有状态值
try {
stutus = Integer.parseInt(request.getParameter("stutus"));
try {
Student student = (Student) request.getSession().getAttribute("student");
String sname = student.getStudentTrueName();
System.out.println("ddddddddddddd "+sname);
articleList = CommServce.getInstence().getAllArticle(page,HQL.append(" where articleUser='"+sname+"' "));
forwardName="allarticle";
} catch (Exception e) {
articleList = CommServce.getInstence().getAllArticle(page,HQL.append(" where stutus="+stutus+" "));
forwardName="articleList";
}
} catch (Exception e) {
Student student = (Student) request.getSession().getAttribute("student");
String sname = student.getStudentTrueName();
System.out.println("ddddddddddddd "+sname);
articleList = CommServce.getInstence().getAllArticle(page,HQL.append(" where articleUser='"+sname+"' "));
forwardName="allarticle";
}
request.setAttribute("article", articleList);
request.setAttribute("curPage", page);
return mapping.findForward(forwardName);
}
页面jsp上的显示
<center>
     <a href="ArticleAction.do?comm=getAllArticleByPage&&page=1">首页</a>
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     <c:if test="${curPage==1}">
               上一页
     </c:if>
     <c:if test="${curPage>1}">
       <a href="ArticleAction.do?comm=getAllArticleByPage&&page=${article.page.curPage-1}">上一页</a>
     </c:if>
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     <c:if test="${curPage==article.page.totalPage}">
              下一页
     </c:if>
     <c:if test="${curPage<article.page.totalPage}">
       <a href="ArticleAction.do?comm=getAllArticleByPage&&page=${article.page.curPage+1}">下一页</a>
     </c:if>
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     <a href="ArticleAction.do?comm=getAllArticleByPage&&page=${article.page.totalPage}">末页</a>
     &nbsp;&nbsp;共<font color="red">${article.page.totalPage}</font>页
  </center>
这是一个非常通用 的分页方法,各位可以进行拓展,如果有不了解的地方也可以联系我:QQ443628678
分享到:
评论

相关推荐

    struts+spring+hibernate通用分页方法

    ### Struts+Spring+Hibernate通用分页方法详解 #### 一、引言 在Web应用开发中,分页是一项常用且重要的功能。特别是在处理大量数据时,合理的分页策略能够显著提升用户体验并减轻服务器压力。Struts+Spring+...

    struts+hibernate+spring应用下的实用分页实例

    ### Struts + Hibernate + Spring 应用下的实用分页实例详解 #### 一、背景介绍 在基于Struts + Hibernate + Spring(SSH)框架的Web应用程序开发中,数据展示是必不可少的一部分,特别是在需要处理大量数据的情况...

    J2EE电子商务系统开发从入门到精通--基于Struts和Hibernate技术实现

    ### J2EE电子商务系统开发从入门到精通——基于Struts和Hibernate技术实现 #### J2EE概论 **1.1 简单双层架构到复杂多层架构** - **1.1.1 双层(C/S)软件架构设计** - 双层架构(客户端/服务器架构,Client/...

    J2EE电子商务系统开发从入门到精通基于Struts和Hibernate技术实现

    ### J2EE电子商务系统开发从入门到精通:基于Struts和Hibernate技术实现 #### J2EE概论 在深入探讨如何使用Struts和Hibernate技术来构建一个完整的电子商务系统之前,我们首先需要理解J2EE的基本概念及其体系架构...

    J2EE电子商务系统从入门到精通--基于Struts和Hibernate技术实现.

    ### J2EE电子商务系统从入门到精通——基于Struts和Hibernate技术实现 #### 一、J2EE概论 在本书的第一章中,作者详细介绍了从简单的双层架构到复杂的多层架构的发展历程,并深入探讨了J2EE的核心概念和技术。 - ...

    JAVA WEB典型模块与项目实战大全

    3.4 实现spring、struts2.x和hibernate框架集成  3.5 小结  第2篇 典型模块开发  第4章 在线文本编辑器(fckeditor)  4.1 分析fckeditor在线文本编辑器  4.2 fckeditor在线文本编辑器初级应用  4.3 ...

    J2EE电子商务系统开发从入门到精通

    ### J2EE电子商务系统开发从入门到精通 ...通过对本书的学习,读者不仅能够掌握J2EE、Struts和Hibernate的核心概念和技术,还能学会如何将这些技术应用于实际项目中,从而提升自己的技术水平和项目经验。

    Java学习笔记-个人整理的

    {2.5}封装}{52}{section.2.5} {2.6}多态}{53}{section.2.6} {2.7}Sample code}{54}{section.2.7} {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section....

    2017年尚学堂Java培训课程大纲.docx

    - **封装、继承和多态**:掌握封装性的实现方式、继承关系的建立与使用、多态性的体现与应用场景。 - **Java数据结构**(栈、队列、链表的实现):学习并实践常见的数据结构,包括栈、队列和链表的实现及其在实际...

Global site tag (gtag.js) - Google Analytics