HibernateDAO类怎么使用

这篇文章主要讲解了“Hibernate DAO类怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate DAO类怎么使用”吧!

10年积累的成都网站制作、网站设计、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有颍东免费网站建设让你可以放心的选择与我们合作。

在Struts分页有两种结构:

1. 在Action中通过DAO查询出所有的记录,然后加到session或request对象中,传到客户端,由JSP进行分页。这种方法对于在数据量少的时候很方便,也不影响速度。

2.在Action中每次通过DAO只查询出一页的记录,再传给JSP页面。这种结构对于数据量大的程序很好,但对于数据量小的情况,会增加对服务器的请求,加大服务器的负载。

1).Hibernate 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;  }  }

Hibernate DAO类我就贴这些分页需要的代码了。“from VehicleProperty vp”也可以用一个参数传进来,有兴趣的自己改一下吧

2).Action

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

public ActionForward queryWithPage(ActionMapping actionMapping,  ActionForm actionForm  HttpServletRequest httpServletRequest,  HttpServletResponse httpServletresponse) {  Collection clInfos = null;//用于输出到页面的记录集合  int totalRows;//记录总行  VehiclePropertyDAO vehicleDAO = new VehiclePropertyDAO();  //取得当前表中的总行数  try {  totalRows = vehicleDAO.getRows("select count(*) from VehicleProperty");  } catch (Exception ex) {  servlet.log(ex.toString());  return actionMapping.findForward(Constants.FAILURE);  }  //通过PagerHelper类来获取用于输出到页面的pager对象  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对象保存到request对象中  httpServletRequest.setAttribute("CLINFOS", clInfos);  httpServletRequest.setAttribute("PAGER", pager);  return actionMapping.findForward(Constants.SUCCESS);  }

查询语句select count(*) from VehicleProperty 也可以换成你需要的任意的条件(select count(*) from VehicleProperty where ..)

感谢各位的阅读,以上就是“Hibernate DAO类怎么使用”的内容了,经过本文的学习后,相信大家对Hibernate DAO类怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

本文名称:HibernateDAO类怎么使用
本文网址:https://www.cdcxhl.com/article2/ghoooc.html

成都网站建设公司_创新互联,为您提供静态网站外贸建站网页设计公司网站设计手机网站建设用户体验

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设