精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談Struts分頁中的Hibernate如何實(shí)現(xiàn)

開發(fā) 后端
在進(jìn)行web應(yīng)用開發(fā)的時(shí)候經(jīng)常要進(jìn)行分頁處理,經(jīng)常看到一些人在問分頁處理的問題,現(xiàn)在我把自己的處理方法寫在這兒,希望能對(duì)需要進(jìn)行分頁處理的朋友有所幫助。

在進(jìn)行web應(yīng)用開發(fā)的時(shí)候經(jīng)常要對(duì)Struts分頁處理,經(jīng)常看到一些人在問Struts分頁處理的問題,現(xiàn)在我把自己的處理方法寫在這兒,希望能對(duì)需要進(jìn)行Struts分頁處理的朋友有所幫助。

一、在Struts分頁有兩種結(jié)構(gòu):

1. 在Action中通過DAO查詢出所有的記錄,然后加到session或request對(duì)象中,傳到客戶端,由JSP進(jìn)行分頁。

這種方法對(duì)于在數(shù)據(jù)量少的時(shí)候很方便,也不影響速度。

2.在Action中每次通過DAO只查詢出一頁的記錄,再傳給JSP頁面。

這種結(jié)構(gòu)對(duì)于數(shù)據(jù)量大的程序很好,但對(duì)于數(shù)據(jù)量小的情況,會(huì)增加對(duì)服務(wù)器的請(qǐng)求,加大服務(wù)器的負(fù)載。

二、Hibernate查詢

由于在Hibernate中直接提供了對(duì)數(shù)據(jù)庫定點(diǎn)定量的查詢方法,所以我采用的是第2種方法。

如:

從第1萬條開始取出100條記錄

Query q = session.createQuery("from Cat as c");

q.setFirstResult(10000);

q.setMaxResults(100);

List l = q.list();

三、具體實(shí)現(xiàn)

1.Pager類

package com.jpcf.db.helper;

import java.math.*;

public class Pager {

private int totalRows; //總行數(shù)

private int pageSize = 10; //每頁顯示的行數(shù)

private int currentPage; //當(dāng)前頁號(hào)

private int totalPages; //總頁數(shù)

private int startRow; //當(dāng)前頁在數(shù)據(jù)庫中的起始行

public Pager() {

}

public Pager(int _totalRows) {

totalRows = _totalRows;

totalPages=totalRows/pageSize;

int mod=totalRows%pageSize;

if(mod>0){

totalPages++;

}

currentPage = 1;

startRow = 0;

}

public int getStartRow() {

return startRow;

}

public int getTotalPages() {

return totalPages;

}

public int getCurrentPage() {

return currentPage;

}

public int getPageSize() {

return pageSize;

}

public void setTotalRows(int totalRows) {

this.totalRows = totalRows;

}

public void setStartRow(int startRow) {

this.startRow = startRow;

}

public void setTotalPages(int totalPages) {

this.totalPages = totalPages;

}

public void setCurrentPage(int currentPage) {

this.currentPage = currentPage;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public int getTotalRows() {

return totalRows;

}

public void first() {

currentPage = 1;

startRow = 0;

}

public void previous() {

if (currentPage == 1) {

return;

}

currentPage--;

startRow = (currentPage - 1) * pageSize;

}

public void next() {

if (currentPage < totalPages) {

currentPage++;

}

startRow = (currentPage - 1) * pageSize;

}

public void last() {

currentPage = totalPages;

startRow = (currentPage - 1) * pageSize;

}

public void refresh(int _currentPage) {

currentPage = _currentPage;

if (currentPage > totalPages) {

last();

}

}

}

Pager類用于計(jì)算首頁、前一頁、下一頁、尾頁的在數(shù)據(jù)庫中的起始行,當(dāng)前的頁碼。

2.PagerHelp類

package com.jpcf.db.helper;

import javax.servlet.http.*;

public class PagerHelper {

public static Pager getPager(HttpServletRequest httpServletRequest,

int totalRows) {

//定義pager對(duì)象,用于傳到頁面

Pager pager = new Pager(totalRows);

//從Request對(duì)象中獲取當(dāng)前頁號(hào)

String currentPage = httpServletRequest.getParameter("currentPage");

//如果當(dāng)前頁號(hào)為空,表示為首次查詢該頁

//如果不為空,則刷新pager對(duì)象,輸入當(dāng)前頁號(hào)等信息

if (currentPage != null) {

pager.refresh(Integer.parseInt(currentPage));

}

//獲取當(dāng)前執(zhí)行的方法,首頁,前一頁,后一頁,尾頁。

String pagerMethod = httpServletRequest.getParameter("pageMethod");

if (pagerMethod != null) {

if (pagerMethod.equals("first")) {

pager.first();

} else if (pagerMethod.equals("previous")) {

pager.previous();

} else if (pagerMethod.equals("next")) {

pager.next();

} else if (pagerMethod.equals("last")) {

pager.last();

}

}

return pager;

}

}

PageHelper這個(gè)類,我不用說應(yīng)該也知道用來干嘛了

3.DAO類

package com.jpcf.db.dao;

import com.jpcf.db.model.*;

import com.jpcf.db.helper.HibernateUtil;

import net.sf.hibernate.*;

import java.util.*;

import com.jpcf.db.controller.*;

public class VehiclePropertyDAO {

public Collection findWithPage(int pageSize, int startRow) throws

HibernateException {

Collection vehicleList = null;

Transaction tx = null;

try {

Session session = HibernateUtil.currentSession();

tx = session.beginTransaction();

Query q = session.createQuery("from VehicleProperty vp");

q.setFirstResult(startRow);

q.setMaxResults(pageSize);

vehicleList = q.list();

tx.commit();

} catch (HibernateException he) {

if (tx != null) {

tx.rollback();

}

throw he;

} finally {

HibernateUtil.closeSession();

}

return vehicleList;

}

public int getRows(String query) throws

HibernateException {

int totalRows = 0;

Transaction tx = null;

try {

Session session = HibernateUtil.currentSession();

tx = session.beginTransaction();

totalRows = ((Integer) session.iterate(query).next()).

intValue();

tx.commit();

} catch (HibernateException he) {

if (tx != null) {

tx.rollback();

}

throw he;

} finally {

HibernateUtil.closeSession();

}

return totalRows;

}

}

DAO類我就貼這些分頁需要的代碼了。

“from VehicleProperty vp”也可以用一個(gè)參數(shù)傳進(jìn)來,有興趣的自己改一下吧

4.Action

下面是在Action中用到的代碼:/

public ActionForward queryWithPage(ActionMapping actionMapping,

ActionForm actionForm,

HttpServletRequest httpServletRequest,

HttpServletResponse httpServletresponse) {

Collection clInfos = null;//用于輸出到頁面的記錄集合

int totalRows;//記錄總行數(shù)

VehiclePropertyDAO vehicleDAO = new VehiclePropertyDAO();

//取得當(dāng)前表中的總行數(shù)

try {

totalRows = vehicleDAO.getRows("select count(*) from VehicleProperty");

} catch (Exception ex) {

servlet.log(ex.toString());

return actionMapping.findForward(Constants.FAILURE);

}

//通過PagerHelper類來獲取用于輸出到頁面的pager對(duì)象

Pager pager=PagerHelper.getPager(httpServletRequest,totalRows);

//取出從startRow開始的pageSize行記錄

try {

clInfos = vehicleDAO.findWithPage(pager.getPageSize(), pager.getStartRow());

} catch (Exception ex) {

servlet.log(ex.toString());

return actionMapping.findForward(Constants.FAILURE);

}

//把輸出的記錄集和pager對(duì)象保存到request對(duì)象中

httpServletRequest.setAttribute("CLINFOS", clInfos);

httpServletRequest.setAttribute("PAGER", pager);

return actionMapping.findForward(Constants.SUCCESS);

}

查詢語句select count(*) from VehicleProperty 也可以換成你需要的任意的條件(select count(*) from VehicleProperty where ..)

5.JSP頁面使用

下面就是在JSP中的應(yīng)用了: 

="/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=first
" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">首頁

 

解釋一下這一行:"/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=first

method=queryWithPage 
是由于我的Action繼承的是DispatchAction,需要一個(gè)method參數(shù)

pageMethod=first 是用來在PageHelper類中判斷執(zhí)行哪個(gè)操作

四、Struts分頁總結(jié)

我做的這個(gè)也只是一個(gè)借鑒,還有很多沒有實(shí)現(xiàn)的,比如還可以加一下 go 直接到第n頁的功能。

其實(shí)最關(guān)鍵的是把當(dāng)前頁號(hào)和要執(zhí)行的是功能(上一頁,下一頁)的參數(shù)從頁面?zhèn)鬟M(jìn)來,在Action中就可以根據(jù)這兩個(gè)參數(shù)去取下一個(gè)頁面上要顯示的記錄集了

【編輯推薦】

  1. 在Eclipse中開發(fā)struts應(yīng)用程序
  2. 手把手教你在Eclipse中配置開發(fā)Struts
  3. Eclipse下開發(fā)struts完整解決亂碼問題
  4. Struts相關(guān)背景介紹
  5. 使用Easy Struts for Eclipse開發(fā)Struts
責(zé)任編輯:張燕妮 來源: 網(wǎng)易博客
相關(guān)推薦

2009-09-21 18:13:11

Hibernate S

2009-06-04 10:58:15

strutshibernate分頁

2009-02-11 09:37:32

Hibernate分頁技術(shù)JSP

2009-03-06 14:34:31

StrutsHibernateSpring

2009-06-08 16:44:00

2009-09-22 13:41:10

直接使用Hiberna

2009-09-21 13:42:47

Hibernate查詢

2009-07-20 16:18:54

iBatis分頁Hibernate式的

2010-12-28 10:35:33

MySQL分頁

2009-09-21 17:10:14

struts Hibe

2009-06-04 09:11:34

學(xué)習(xí)strutsstruts框架

2009-09-28 15:47:59

Hibernate O

2009-09-21 13:05:18

Hibernate u

2009-09-23 17:07:31

Hibernate C

2012-04-25 10:14:40

JavaStruts

2009-09-22 10:09:21

Hibernate S

2009-09-29 10:46:58

Hibernate領(lǐng)域

2009-09-25 10:53:40

Hibernate S

2009-06-08 16:44:00

Struts配置文件

2009-09-28 13:43:28

使用Hibernate
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

51av在线| 国产高潮流白浆喷水视频| 国产精品xxx在线观看| 狠狠躁天天躁日日躁欧美| 日韩av在线电影观看| 国产av无码专区亚洲av麻豆| 在线亚洲伦理| 久久久国产精品视频| 亚洲精品乱码久久久久久不卡| 日韩av免费| 亚洲免费观看视频| 欧美日韩在线观看一区| 国产肥老妇视频| 日韩和欧美的一区| 国自产精品手机在线观看视频| 91视频免费在观看| 久久香蕉精品香蕉| 9191国产精品| 青青在线视频观看| 怡红院红怡院欧美aⅴ怡春院| 久久欧美一区二区| 成人久久18免费网站漫画| 久久精品99北条麻妃| 很黄很黄激情成人| 久久精品国产一区二区电影| 国产亚洲无码精品| 国产色噜噜噜91在线精品| 欧美色图第一页| 91av资源网| 欧美人与禽性xxxxx杂性| 中文字幕av不卡| 久久国产精品亚洲va麻豆| av综合在线观看| 麻豆国产91在线播放| 欧美一级高清免费播放| 国产一级一级片| 欧美a级片一区| 日韩色av导航| 蜜桃av免费观看| 精品国产91乱码一区二区三区四区 | 999精品网| 亚洲一区二区四区蜜桃| 中文字幕在线乱| 黄网址在线观看| 国产精品国产自产拍高清av| 神马影院一区二区三区| 国产精品四虎| 国产日韩欧美制服另类| 蜜桃av噜噜一区二区三区| 天天干视频在线| 99精品国产99久久久久久白柏| 99re视频在线| 亚洲精品久久久久久无码色欲四季 | 日韩欧美亚洲在线| 天天操天天操天天| 波多野结衣亚洲一区| 国产欧美日韩亚洲| 天堂视频中文在线| 亚洲综合影院| 日韩欧美一二三| 伊人久久久久久久久| 视频亚洲一区二区| 欧美mv日韩mv国产网站app| 亚洲黄色一区二区| 四虎在线精品| 欧美日韩国产bt| 黄色在线视频网| 日韩欧美2区| 红桃av永久久久| 日本aa在线观看| 1024在线看片你懂得| 姬川优奈aav一区二区| 北条麻妃在线观看| 亚洲人免费短视频| 欧美老人xxxx18| 男女视频在线观看网站| 爱爱精品视频| 亚洲色图15p| 日韩av手机在线免费观看| 中文字幕一区二区三三| 国模极品一区二区三区| 久久人妻免费视频| 国产做a爰片久久毛片| 成人毛片网站| 丝袜视频国产在线播放| 国产精品久久久久久久久久免费看| 99久久久无码国产精品性色戒| 青草青在线视频| 一本到一区二区三区| 国产精品嫩草影院8vv8| 风间由美中文字幕在线看视频国产欧美 | 国产喂奶挤奶一区二区三区| 在线不卡日本| 麻豆国产在线| 久久91超碰青草在哪里看| 国产欧美一区视频| www婷婷av久久久影片| 亚洲电影观看| 6080国产精品一区二区| 国产精品无码一区二区三区免费| 三区四区不卡| 91国产在线精品| 国产精品爽爽久久久久久| 2023国产精品自拍| 中文字幕一区二区三区5566| 五月天国产在线| 欧美一区二区三区精品| 免费一级做a爰片久久毛片潮| 欧美激情一区| 国产精品夜间视频香蕉| 五月色婷婷综合| 亚洲男女一区二区三区| 男人女人黄一级| 精品国产亚洲一区二区在线观看 | 亚洲AV无码久久精品国产一区| 色天下一区二区三区| 蜜臀久久99精品久久久久久宅男| 免费污污视频在线观看| 高清免费成人av| 欧美爱爱视频网站| 日本欧美一区| 亚洲电影免费观看高清完整版在线| 东京热无码av男人的天堂| 国产精品日韩精品欧美精品| 成人深夜在线观看| 国产精品视频久久久久| 午夜在线视频观看| 一区二区国产盗摄色噜噜| 欧美伦理片在线观看| 国产成人调教视频在线观看| 97在线视频免费观看| 999av视频| 中文字幕日韩一区| 一道本在线免费视频| 久久99精品久久久久久园产越南| 久久男人av资源网站| jlzzjlzz亚洲女人18| 自拍偷拍欧美激情| 伊人国产在线视频| 日韩欧美高清| 国产精品一区二区性色av| 国产女人在线视频| 色欧美日韩亚洲| www.狠狠爱| 天堂蜜桃91精品| 欧洲精品久久| 日韩精品三区| 中文字幕日韩欧美在线| 国产99久久久久久免费看| 国产欧美精品国产国产专区| 亚洲五月天综合| 大色综合视频网站在线播放| 国产精品久久久久久久美男| 成av人电影在线观看| 欧美羞羞免费网站| 四虎国产成人精品免费一女五男| 日本亚洲一区二区| 亚洲三区在线观看| 亚洲欧美一级| 欧美日韩xxx| 日本精品在线观看视频| 视频一区国产视频| 亚洲三区在线观看| 麻豆视频久久| 韩剧1988在线观看免费完整版| 天天射天天操天天干| 欧美小视频在线观看| 欧美人妻一区二区三区| 美女爽到高潮91| 肉大捧一出免费观看网站在线播放| 中文字幕久久精品一区二区| 2019av中文字幕| 精品一二三区视频| 欧美福利视频一区| 麻豆亚洲av熟女国产一区二 | 成人免费视频视频在| 一个人www视频在线免费观看| 一区二区三区高清国产| 99视频免费看| 一本久久综合亚洲鲁鲁五月天| 性生交大片免费全黄| 成人免费高清视频| 欧美成人黄色网址| 国产精品www994| 日韩av大全| 超碰成人在线免费| 国产精品免费一区豆花| 日韩伦理av| 亚洲欧美一区二区三区情侣bbw | 国产特黄大片aaaa毛片| 中文字幕va一区二区三区| 无码人妻一区二区三区免费n鬼沢| 国产欧美一级| 男女啪啪的视频| 免费短视频成人日韩| 7777精品久久久大香线蕉小说| 成人性教育av免费网址| 欧美精品在线极品| 国产免费av在线| 欧美精品一区二区三区在线播放| 久久这里只有精品9| 亚洲国产精品久久不卡毛片| 国产午夜精品福利视频| 不卡一区二区在线| 国产三级生活片| 久久99伊人| 女人被男人躁得好爽免费视频| 奇米狠狠一区二区三区| 国产精品裸体一区二区三区| 日本久久久久| 国产成人精品免高潮费视频| 91jq激情在线观看| 欧美成人免费在线观看| 91激情在线| 精品爽片免费看久久| 成人免费视频国产免费麻豆| 欧美精品日日鲁夜夜添| 羞羞色院91蜜桃| 欧美日韩亚洲精品一区二区三区| 激情五月少妇a| 亚洲视频你懂的| 三级黄色片在线观看| 久久色视频免费观看| 男女一区二区三区| 国产成人在线看| 亚洲精品在线网址| 激情六月婷婷久久| 性生活免费在线观看| 日韩va欧美va亚洲va久久| 国产又黄又猛视频| 日韩专区中文字幕一区二区| 日本熟妇人妻xxxxx| 亚洲一区二区伦理| 亚洲午夜精品久久久久久人妖| 亚洲精选在线| 男女视频网站在线观看| 伊人成人在线| 日韩五码在线观看| 亚洲精品社区| 69堂免费视频| 亚洲影院在线| 日韩精品一区二区三区不卡| 美女被久久久| 日本va中文字幕| 日本sm残虐另类| 亚洲一级片网站| 精品一区二区三区免费观看| 亚洲精品国产久| 国产一区二区三区四区五区美女 | 亚洲视频国产| 好吊色欧美一区二区三区四区| 久久aimee| 欧美日韩精品一区| 国产不卡av一区二区| 日韩电影大全在线观看| 97精品国产| 成人手机在线播放| 日韩午夜电影| 黄色片一级视频| 毛片av中文字幕一区二区| 亚洲精品www.| 国产精品2024| 国产激情视频网站| 久久久精品蜜桃| 中文字幕第69页| 亚洲精品国产a| 日韩美女黄色片| 日本道色综合久久| 国产精品久久久久久在线| 精品国精品自拍自在线| 日本一区高清| 日韩亚洲欧美成人| wwww在线观看免费视频| 日韩美女在线观看| 99精品女人在线观看免费视频| 97人人做人人人难人人做| 日韩大尺度在线观看| 小说区图片区图片区另类灬| 一区二区三区午夜视频| 欧美精品一区免费| 欧美a级理论片| 在线看黄色的网站| 国产调教视频一区| 青青青在线视频| 色一情一乱一乱一91av| 国产成人精品无码高潮| 亚洲乱码国产乱码精品精天堂| 欧美性天天影视| 午夜精品一区二区三区在线视 | 国产精品久久久久9999高清| 在线观看免费视频高清游戏推荐 | 国产欧美一区二区三区在线观看视频 | 蜜桃传媒视频第一区入口在线看| 久久免费精品视频在这里| 欧美一级视频免费看| 国内精品久久久久影院色 | 秋霞视频一区二区| 中文字幕在线观看亚洲| 国产盗摄——sm在线视频| 国产精品手机播放| 欧美一级色片| 中文字幕av导航| 日精品一区二区| 美女久久久久久久久| 国产精品国产三级国产aⅴ无密码| 国产午夜视频在线| 8v天堂国产在线一区二区| 青青草av免费在线观看| 欧美激情一区二区久久久| 久久天堂影院| 欧美一区二区综合| 亚洲青涩在线| 美女被艹视频网站| 国产精品福利一区二区三区| chinese国产精品| 亚洲大胆美女视频| av在线网址观看| 国产精品自产拍高潮在线观看| 无码少妇一区二区三区| 日韩小视频网站| 国产馆精品极品| 国产性生活大片| 欧美日韩中文精品| 国产在线一在线二| 日本乱人伦a精品| 亚洲va久久久噜噜噜久久| 精品久久久久久无码中文野结衣| 国产一二三精品| 天天爽天天爽天天爽| 欧美视频一区二区三区| 国产h在线观看| 国产成人福利视频| 国产精品探花在线观看| 久章草在线视频| 久久网站最新地址| 国产无套丰满白嫩对白| 日韩精品在线观| 综合久久2023| 欧美日韩一区在线播放| 久久精品系列| 亚欧洲乱码视频| 欧美性色19p| 麻豆国产在线播放| 国产成人精品视| 日韩精品一卡| 亚洲黄色片免费| 一区二区三区在线影院| 国内精品偷拍视频| 国模吧一区二区三区| 麻豆一区一区三区四区| 欧美精品99久久| 久久精品一区二区| 中文字幕自拍偷拍| 久久久精品一区二区三区| 麻豆视频久久| 免费看日本毛片| 久久久精品tv| 一区二区三区午夜| 欧美裸体男粗大视频在线观看| 最新国产一区二区| 国产男女无遮挡| 国产精品你懂的在线| 国产草草影院ccyycom| 久久久久久久成人| 免费不卡中文字幕在线| 欧美一级xxxx| 亚洲国产日韩在线一区模特| 男人天堂亚洲二区| 国产有码在线一区二区视频| 欧美理论在线| 中文字幕一区二区三区人妻不卡| 91福利视频久久久久| 精品176二区| 九色视频成人porny| 奇米色一区二区三区四区| a在线视频播放观看免费观看| 亚洲第一精品自拍| 99久久伊人| 国产成人一区二区三区别| 久久综合九色综合欧美98| 亚洲系列第一页| 久久免费视频这里只有精品| 日韩精品久久| 亚洲精品乱码久久久久久蜜桃图片| 欧美日韩在线播放三区四区| 国内老司机av在线| 日本高清不卡一区二区三| 国产精品亚洲视频| 久久夜色精品国产噜噜亚洲av| 久久久av免费| 神马久久一区二区三区| 香蕉视频xxxx| 色先锋资源久久综合| 欧美xxxx黑人又粗又长| 污视频在线免费观看一区二区三区| 高清不卡一区二区| 中文字幕免费观看视频| 97色在线视频观看| 艳女tv在线观看国产一区| 91成人在线免费视频|