日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
HibernateDAO類概述

本文向大家介紹Hibernate DAO類,可能好多人還不了解Hibernate DAO類,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),九江網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:九江等地區(qū)。九江做網(wǎng)站價(jià)格咨詢:18982081108

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

1. 在Action中通過DAO查詢出所有的記錄,然后加到session或request對象中,傳到客戶端,由JSP進(jìn)行分頁。這種方法對于在數(shù)據(jù)量少的時(shí)候很方便,也不影響速度。

2.在Action中每次通過DAO只查詢出一頁的記錄,再傳給JSP頁面。這種結(jié)構(gòu)對于數(shù)據(jù)量大的程序很好,但對于數(shù)據(jù)量小的情況,會(huì)增加對服務(wù)器的請求,加大服務(wù)器的負(fù)載。

1).Hibernate DAO類

 
 
 
  1. package com.jpcf.db.dao;
  2. import com.jpcf.db.model.*;
  3. import com.jpcf.db.helper.HibernateUtil;
  4. import net.sf.hibernate.*;
  5. import java.util.*;
  6. import com.jpcf.db.controller.*;
  7. public class VehiclePropertyDAO {
  8. public Collection findWithPage(int pageSize, int startRow) throws
  9. HibernateException {
  10. Collection vehicleList = null;
  11. Transaction tx = null;
  12. try {
  13. Session session = HibernateUtil.currentSession();
  14. tx = session.beginTransaction();
  15. Query q = session.createQuery("from VehicleProperty vp");
  16. q.setFirstResult(startRow);
  17. q.setMaxResults(pageSize);
  18. vehicleList = q.list();
  19. tx.commit();
  20. } catch (HibernateException he) {
  21. if (tx != null) {
  22. tx.rollback();
  23. }
  24. throw he;
  25. } finally {
  26. HibernateUtil.closeSession();
  27. }
  28. return vehicleList;
  29. }
  30. public int getRows(String query) throws
  31. HibernateException {
  32. int totalRows = 0;
  33. Transaction tx = null;
  34. try {
  35. Session session = HibernateUtil.currentSession();
  36. tx = session.beginTransaction();
  37. totalRows = ((Integer) session.iterate(query).next()).
  38. intValue();
  39. tx.commit();
  40. }
  41. catch (HibernateException he) {
  42. if (tx != null) {
  43. tx.rollback();
  44. }
  45. throw he;
  46. }
  47. finally {
  48. HibernateUtil.closeSession();
  49. }
  50. return totalRows;
  51. }
  52. }

Hibernate DAO類我就貼這些分頁需要的代碼了?!癴rom VehicleProperty vp”也可以用一個(gè)參數(shù)傳進(jìn)來,有興趣的自己改一下吧

2).Action

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

 
 
 
  1. public ActionForward queryWithPage(ActionMapping actionMapping,
  2. ActionForm actionForm
  3. HttpServletRequest httpServletRequest,
  4. HttpServletResponse httpServletresponse) {
  5. Collection clInfos = null;//用于輸出到頁面的記錄集合
  6. int totalRows;//記錄總行
  7. VehiclePropertyDAO vehicleDAO = new VehiclePropertyDAO();
  8. //取得當(dāng)前表中的總行數(shù)
  9. try {
  10. totalRows = vehicleDAO.getRows("select count(*) from VehicleProperty");
  11. } catch (Exception ex) {
  12. servlet.log(ex.toString());
  13. return actionMapping.findForward(Constants.FAILURE);
  14. }
  15. //通過PagerHelper類來獲取用于輸出到頁面的pager對象
  16. Pager pager=PagerHelper.getPager(httpServletRequest,totalRows);
  17. //取出從startRow開始的pageSize行記錄
  18. try {
  19. clInfos = vehicleDAO.findWithPage(pager.getPageSize(), pager.getStartRow());
  20. }
  21. catch (Exception ex) {
  22. servlet.log(ex.toString());
  23. return actionMapping.findForward(Constants.FAILURE);
  24. }
  25. //把輸出的記錄集和pager對象保存到request對象中
  26. httpServletRequest.setAttribute("CLINFOS", clInfos);
  27. httpServletRequest.setAttribute("PAGER", pager);
  28. return actionMapping.findForward(Constants.SUCCESS);
  29. }

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


網(wǎng)頁標(biāo)題:HibernateDAO類概述
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/cdoegdp.html