一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Struts2+Hibernate實現數據分頁的方法

Struts2+Hibernate實現數據分頁的方法

2020-04-12 16:46TKD03072010 JAVA教程

這篇文章主要介紹了Struts2+Hibernate實現數據分頁的方法,結合實例形式分析了Struts2結合Hibernate實現數據分頁的原理,步驟與相關實現代碼,需要的朋友可以參考下

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

1.用Hibernate實現分頁技術:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 使用hql語句進行分頁查詢
* @param hql 需要查詢的hql語句
* @param offset 第一條記錄索引
* @param pageSize 每頁需要顯示的記錄數
* @return 當前頁的所有記錄
*/
@SuppressWarnings("unchecked")
public List findByPage(final String hql,
final int offset, final int pageSize)
{
    //通過一個HibernateCallback對象來執行查詢
    List list = getHibernateTemplate()
      .executeFind(new HibernateCallback()
    {
      //實現HibernateCallback接口必須實現的方法
      public Object doInHibernate(Session session)
        throws HibernateException, SQLException
      {
        //執行Hibernate分頁查詢
        List result = session.createQuery(hql)
          .setFirstResult(offset)
          .setMaxResults(pageSize)
          .list();
        return result;
      }
    });
    return list;
}
// 獲取總記錄數
public int getRows(String hql) {
    return getHibernateTemplate().find(hql).size();
}

2.在Action里調用Hibernate實現分頁技術的方法,并跳轉到顯示界面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 分頁
@SuppressWarnings("unchecked")
public String paging() {
    String hql = "from Income"; // 分頁的數據表
    int pageSize = 3; // 每頁顯示記錄的條數
    int allRows = service.getRows(hql); // 記錄總數
    int allPage = 0; // 總頁數
    int offset = getPage() + 1; // 第一條記錄的索引
    /*if (rows % size != 0) {
      pageSize = rows / size + 1;
    } else {
      pageSize = rows / size;
    }*/
    allPage = (allRows - 1) / pageSize + 1; // 計算總頁數
    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配置:

?
1
2
3
4
5
6
7
<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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<%@ 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.分頁結果:

Struts2+Hibernate實現數據分頁的方法

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 深夜福利影院在线观看 | 欧美国产日韩1区俺去了 | 国产色司机在线视频免费观看 | 国产一区二区精品久 | 亚洲国产综合网 | 九九久久精品 | 国产成人精品高清不卡在线 | 国产视频久久久久 | 美女张开腿黄网站免费精品动漫 | 99国产牛牛视频在线网站 | 午夜伦理电影在线观免费 | 网红思瑞一区二区三区 | freexxxxxhd张柏芝 | 国产麻豆91网在线看 | 国产成人福利色视频 | 翁用力的抽插 | 亚洲 欧美 偷自乱 图片 | 亚洲精品6久久久久中文字幕 | 久久综合久综合久久鬼色 | 免费国产午夜高清在线视频 | eee在线播放成人免费 | 男人狂躁女人下半身 | 精品久久久久国产免费 | 青青久久精品国产 | 男人天堂国产 | 精品久久久久久国产91 | 俄罗斯12一15处交 | 成人私人影院在线观看网址 | 亚洲青草 | 亚洲色欲色欲综合网站 | 免费在线视频观看 | 国模娜娜一区二区三区 | 特大黑人娇小亚洲女mp4 | 女子张腿让男人桶免费 | 久久精品99国产精品日本 | segou视频在线观看 | a毛片在线免费观看 | 秒播影视 午夜福利毛片 | 精品久久久噜噜噜久久7 | 亚洲 欧美 国产 综合 播放 | 国模大胆一区二区三区 |