欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Struts2+Hibernate實現(xiàn)數(shù)據(jù)分頁的方法

 更新時間:2016年03月24日 10:39:51   作者:TKD03072010  
這篇文章主要介紹了Struts2+Hibernate實現(xiàn)數(shù)據(jù)分頁的方法,結(jié)合實例形式分析了Struts2結(jié)合Hibernate實現(xiàn)數(shù)據(jù)分頁的原理,步驟與相關(guān)實現(xiàn)代碼,需要的朋友可以參考下

本文實例講述了Struts2+Hibernate實現(xiàn)數(shù)據(jù)分頁的方法。分享給大家供大家參考,具體如下:

1.用Hibernate實現(xiàn)分頁技術(shù):

/**
* 使用hql語句進行分頁查詢
* @param hql 需要查詢的hql語句
* @param offset 第一條記錄索引
* @param pageSize 每頁需要顯示的記錄數(shù)
* @return 當前頁的所有記錄
*/
@SuppressWarnings("unchecked")
public List findByPage(final String hql,
final int offset, final int pageSize)
{
    //通過一個HibernateCallback對象來執(zhí)行查詢
    List list = getHibernateTemplate()
      .executeFind(new HibernateCallback()
    {
      //實現(xiàn)HibernateCallback接口必須實現(xiàn)的方法
      public Object doInHibernate(Session session)
        throws HibernateException, SQLException
      {
        //執(zhí)行Hibernate分頁查詢
        List result = session.createQuery(hql)
          .setFirstResult(offset)
          .setMaxResults(pageSize)
          .list();
        return result;
      }
    });
    return list;
}
// 獲取總記錄數(shù)
public int getRows(String hql) {
    return getHibernateTemplate().find(hql).size();
}

2.在Action里調(diào)用Hibernate實現(xiàn)分頁技術(shù)的方法,并跳轉(zhuǎn)到顯示界面:

// 分頁
@SuppressWarnings("unchecked")
public String paging() {
    String hql = "from Income"; // 分頁的數(shù)據(jù)表
    int pageSize = 3; // 每頁顯示記錄的條數(shù)
    int allRows = service.getRows(hql); // 記錄總數(shù)
    int allPage = 0; // 總頁數(shù)
    int offset = getPage() + 1; // 第一條記錄的索引
    /*if (rows % size != 0) {
      pageSize = rows / size + 1;
    } else {
      pageSize = rows / size;
    }*/
    allPage = (allRows - 1) / pageSize + 1; // 計算總頁數(shù)
    List<Income> income = service.findByPage(hql, (offset-1)*pageSize, pageSize);
    request.setAttribute("allPage", allPage);
    request.setAttribute("offset", offset);
    request.setAttribute("income", income);
    return "paging";
}

3.struts.xml配置:

<action name="income"
    class="com.xqh.action.IncomeAction">
    <!-- 為兩個邏輯視圖配置視圖頁面 -->
    <result name="error">/error.jsp</result>
    <result name="paging">/income/income_list.jsp</result>
    <result name="update">/income/income_edit.jsp</result>
</action>

4.顯示界面income_list.jsp

<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
  <title>收入列表</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <link rel="stylesheet" type="text/css" href="../images/styles.css">
</head>
<body>
  <div class="div1">
    <table width="100%" cellpadding="0" cellspacing="0" border="0"
      align="center">
      <tr>
        <td class="td_title1">
          ·當前位置:收入管理>>查看收入
        </td>
      </tr>
      <tr>
        <td bgcolor="#FFFFFF" height="50">
          <br>
          <table border="1" align="center" width="700" cellpadding="1"
            cellspacing="1" bgcolor="#036500" bordercolor="#FFFFF">
            <tr bgcolor="#FFFFFF">
              <td class="tb_tl" align="center">
                收入編號
              </td>
              <td class="tb_tl" align="center">
                日期
              </td>
              <td class="tb_tl" align="center">
                方式
              </td>
              <td class="tb_tl" align="center">
                金額
              </td>
              <td class="tb_tl" align="center">
                項目
              </td>
              <td class="tb_tl" align="center">
                來源
              </td>
              <td class="tb_tl" align="center">
                人員
              </td>
              <td class="tb_tl" align="center">
                備注
              </td>
              <td class="tb_tl" align="center">
                操作
              </td>
            </tr>
            <s:iterator value="#request.income">
              <tr bgcolor="#FFFFFF">
                <td align="center"><s:property value="id"/></td>
                <td align="center"><s:date name="date" format="yyyy-MM-dd"/></td>
                <td align="center"><s:property value="style"/></td>
                <td align="center"><s:property value="money"/></td>
                <td align="center"><s:property value="project"/></td>
                <td align="center"><s:property value="source"/></td>
                <td align="center"><s:property value="personnel"/></td>
                <td align="center"><s:property value="remarks"/></td>
                <td align="center">
                  <a href="javascript:if(confirm('確定要刪除${id}嗎?'))location='income!del?id=${id}'">刪除</a>
                  <a href="javascript:if(confirm('確定要修改${id}嗎?'))location='income!updateTo?id=${id}'">修改</a>
                </td>
              </tr>
            </s:iterator>
          </table>
          <center>
              總共有${allPage}頁,   當前是第${offset}頁
              <a href="income!paging?page=0"><font size="2" color="blue">首頁</font></a>
              <a href="javascript:if(${offset}>1)location='income!paging?page=${page-1}'"><font size="2" color="red">上一頁</font></a>
              <a href="javascript:if(${offset}<${allPage})location='income!paging?page=${page+1}'"><font size="2" color="red">下一頁</font></a>
              <a href="income!paging?page=${allPage-1}"><font size="2" color="blue">末頁</font></a>
          </center>
        </td>
      </tr>
    </table>
  </div>
</body>

5.分頁結(jié)果:

本文章未提供底層數(shù)據(jù)庫中的實現(xiàn),但只要掌握分頁原理,相信這問題不大。具體分頁原理可參照前面一篇:《Hibernate框架數(shù)據(jù)分頁技術(shù)實例分析

希望本文所述對大家基于Hibernate框架的Java程序設(shè)計有所幫助。

相關(guān)文章

  • java 實現(xiàn)最小二叉樹堆排序的實例

    java 實現(xiàn)最小二叉樹堆排序的實例

    這篇文章主要介紹了java 實現(xiàn)最小二叉樹堆排序的實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Java處理時間格式CST和GMT轉(zhuǎn)換方法示例

    Java處理時間格式CST和GMT轉(zhuǎn)換方法示例

    這篇文章主要給大家介紹了關(guān)于Java處理時間格式CST和GMT轉(zhuǎn)換方法的相關(guān)資料,相信很多小伙伴在時間格式轉(zhuǎn)換的時候非常頭疼,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Java基于迭代器模式實現(xiàn)的訪問人員列表操作示例

    Java基于迭代器模式實現(xiàn)的訪問人員列表操作示例

    這篇文章主要介紹了Java基于迭代器模式實現(xiàn)的訪問人員列表操作,簡單描述了迭代器模式的概念、原理以及使用迭代器模式實現(xiàn)訪問人員列表的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • SpringMVC?@RequestMapping注解詳解

    SpringMVC?@RequestMapping注解詳解

    本文主要介紹了SpringMVC?@RequestMapping注解詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 基于Java設(shè)計一個高并發(fā)的秒殺系統(tǒng)

    基于Java設(shè)計一個高并發(fā)的秒殺系統(tǒng)

    這篇文章主要為大家詳細介紹了如何基于Java設(shè)計一個高并發(fā)的秒殺系統(tǒng),文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2023-10-10
  • 教你用MAT工具分析Java堆內(nèi)存泄漏問題的解決方法

    教你用MAT工具分析Java堆內(nèi)存泄漏問題的解決方法

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著如何使用MAT工具分析Java堆內(nèi)存泄漏問題的解決方法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Springboot集成ClickHouse及應(yīng)用場景分析

    Springboot集成ClickHouse及應(yīng)用場景分析

    這篇文章主要介紹了Springboot集成ClickHouse的實例代碼,本文通過應(yīng)用場景實例代碼介紹了整合springboot的詳細過程,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • Java對象轉(zhuǎn)json的方法過程解析

    Java對象轉(zhuǎn)json的方法過程解析

    這篇文章主要介紹了Java對象轉(zhuǎn)json的方法過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 基于Java+SpringBoot實現(xiàn)人臉識別搜索

    基于Java+SpringBoot實現(xiàn)人臉識別搜索

    人臉識別搜索技術(shù)作為現(xiàn)代計算機視覺領(lǐng)域的重要研究方向之一,已經(jīng)在多個領(lǐng)域展現(xiàn)出巨大的應(yīng)用潛力,隨著信息技術(shù)的飛速發(fā)展,人臉識別搜索在多個領(lǐng)域得到了廣泛關(guān)注和應(yīng)用,本文旨在探討人臉識別搜索技術(shù)的背景、原理以及其在實際應(yīng)用中的意義和挑戰(zhàn)
    2023-08-08
  • 詳解SpringMVC解決跨域的兩種方案

    詳解SpringMVC解決跨域的兩種方案

    本篇文章主要介紹了詳解SpringMVC解決跨域的兩種方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論