最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

/**
* 使用hql語(yǔ)句進(jìn)行分頁(yè)查詢
* @param hql 需要查詢的hql語(yǔ)句
* @param offset 第一條記錄索引
* @param pageSize 每頁(yè)需要顯示的記錄數(shù)
* @return 當(dāng)前頁(yè)的所有記錄
*/
@SuppressWarnings("unchecked")
public List findByPage(final String hql,
final int offset, final int pageSize)
{
    //通過一個(gè)HibernateCallback對(duì)象來執(zhí)行查詢
    List list = getHibernateTemplate()
      .executeFind(new HibernateCallback()
    {
      //實(shí)現(xiàn)HibernateCallback接口必須實(shí)現(xiàn)的方法
      public Object doInHibernate(Session session)
        throws HibernateException, SQLException
      {
        //執(zhí)行Hibernate分頁(yè)查詢
        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實(shí)現(xiàn)分頁(yè)技術(shù)的方法,并跳轉(zhuǎn)到顯示界面:

// 分頁(yè)
@SuppressWarnings("unchecked")
public String paging() {
    String hql = "from Income"; // 分頁(yè)的數(shù)據(jù)表
    int pageSize = 3; // 每頁(yè)顯示記錄的條數(shù)
    int allRows = service.getRows(hql); // 記錄總數(shù)
    int allPage = 0; // 總頁(yè)數(shù)
    int offset = getPage() + 1; // 第一條記錄的索引
    /*if (rows % size != 0) {
      pageSize = rows / size + 1;
    } else {
      pageSize = rows / size;
    }*/
    allPage = (allRows - 1) / pageSize + 1; // 計(jì)算總頁(yè)數(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">
    <!-- 為兩個(gè)邏輯視圖配置視圖頁(yè)面 -->
    <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">
          ·當(dāng)前位置:收入管理>>查看收入
        </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">
                收入編號(hào)
              </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">
                項(xiàng)目
              </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('確定要?jiǎng)h除${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}頁(yè),   當(dāng)前是第${offset}頁(yè)
              <a href="income!paging?page=0"><font size="2" color="blue">首頁(yè)</font></a>
              <a href="javascript:if(${offset}>1)location='income!paging?page=${page-1}'"><font size="2" color="red">上一頁(yè)</font></a>
              <a href="javascript:if(${offset}<${allPage})location='income!paging?page=${page+1}'"><font size="2" color="red">下一頁(yè)</font></a>
              <a href="income!paging?page=${allPage-1}"><font size="2" color="blue">末頁(yè)</font></a>
          </center>
        </td>
      </tr>
    </table>
  </div>
</body>

5.分頁(yè)結(jié)果:

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

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

相關(guān)文章

  • Nacos入門過程的坑--獲取不到配置的值問題

    Nacos入門過程的坑--獲取不到配置的值問題

    這篇文章主要介紹了Nacos入門過程的坑--獲取不到配置的值問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java中將base64編碼字符串轉(zhuǎn)換為圖片的代碼

    Java中將base64編碼字符串轉(zhuǎn)換為圖片的代碼

    這篇文章主要介紹了Java中將base64編碼字符串轉(zhuǎn)換為圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)

    packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)

    這篇文章主要為大家介紹了packages思維及使用Java添加Android平臺(tái)特定實(shí)現(xiàn)在Flutter框架里的體現(xiàn)和運(yùn)用詳解,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java遞歸讀取文件例子_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java遞歸讀取文件例子_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    本文通過一段示例代碼給大家介紹了java遞歸讀取文件的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-05-05
  • idea中l(wèi)ombok的用法

    idea中l(wèi)ombok的用法

    lombok是開源的代碼生成庫(kù),是一款非常實(shí)用的小工具,在更改實(shí)體類時(shí)只需要修改屬性即可,減少了很多重復(fù)代碼的編寫工作,今天小編給大家介紹idea中l(wèi)ombok的用法,感興趣的朋友一起看看吧
    2021-12-12
  • Android中幾種圖片特效的處理的實(shí)現(xiàn)方法

    Android中幾種圖片特效的處理的實(shí)現(xiàn)方法

    這篇文章主要介紹了 Android中幾種圖片特效的處理的實(shí)現(xiàn)方法的相關(guān)資料,這里有放大縮小圖片,獲得圓角圖片,獲得帶倒影圖片的幾種方法,需要的朋友可以參考下
    2017-08-08
  • springBoot集成redis(jedis)的實(shí)現(xiàn)示例

    springBoot集成redis(jedis)的實(shí)現(xiàn)示例

    Redis是我們Java開發(fā)中,使用頻次非常高的一個(gè)nosql數(shù)據(jù)庫(kù),本文主要介紹了springBoot集成redis(jedis)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Spring Boot 2.4配置特定環(huán)境時(shí)spring: profiles提示被棄用的原因分析

    Spring Boot 2.4配置特定環(huán)境時(shí)spring: profiles提示被棄用的原

    這篇文章主要介紹了Spring Boot 2.4配置特定環(huán)境時(shí)spring: profiles提示被棄用的原因,本文給大家分享詳細(xì)解決方案,需要的朋友可以參考下
    2023-04-04
  • Spring擴(kuò)展點(diǎn)之BeanFactoryPostProcessor詳解

    Spring擴(kuò)展點(diǎn)之BeanFactoryPostProcessor詳解

    這篇文章主要介紹了Spring擴(kuò)展點(diǎn)之BeanFactoryPostProcessor詳解,Spring的設(shè)計(jì)非常優(yōu)雅,有很多的擴(kuò)展點(diǎn)供我們對(duì)項(xiàng)目進(jìn)行擴(kuò)展,今天學(xué)習(xí)一下Spring其中擴(kuò)展點(diǎn)之一的BeanFactoryPostProcessor,需要的朋友可以參考下
    2023-11-11
  • Java使用設(shè)計(jì)模式中的工廠方法模式實(shí)例解析

    Java使用設(shè)計(jì)模式中的工廠方法模式實(shí)例解析

    當(dāng)系統(tǒng)準(zhǔn)備為用戶提供某個(gè)類的子類的實(shí)例,又不想讓用戶代碼和該子類形成耦合時(shí),就可以使用工廠方法模式來設(shè)計(jì)系統(tǒng).工廠方法模式的關(guān)鍵是在一個(gè)接口或抽象類中定義一個(gè)抽象方法,下面我們會(huì)具體介紹Java使用設(shè)計(jì)模式中的工廠方法模式實(shí)例解析.
    2016-05-05

最新評(píng)論

乌审旗| 钟祥市| 县级市| 封开县| 嘉善县| 修水县| 伊川县| 东兴市| 红河县| 鄂托克旗| 郓城县| 大足县| 固始县| 乌鲁木齐县| 海南省| 长宁县| 建始县| 搜索| 凤凰县| 沅江市| 织金县| 会昌县| 张家口市| 沁阳市| 新兴县| 江西省| 东乌珠穆沁旗| 连南| 女性| 连州市| 昭平县| 隆林| 泉州市| 屯昌县| 沙坪坝区| 柳江县| 城市| 昌江| 东乡族自治县| 巴塘县| 阳江市|