Hibernate DAO类怎么使用
发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,这篇文章主要讲解了"Hibernate DAO类怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Hibernate DAO类怎么使用"吧!在St
千家信息网最后更新 2024年09月28日Hibernate DAO类怎么使用
这篇文章主要讲解了"Hibernate DAO类怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Hibernate DAO类怎么使用"吧!
在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类怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
对象
数据
页面
学习
查询
输出
代码
内容
总行
情况
服务器
结构
服务
中用
兴趣
参数
客户
客户端
就是
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mongodb添加数据库
中央网络安全意识形态
软件开发就业去向与前程
网络技术服务公司网站
新华杯网络技术大赛
健康与家庭教育与网络安全
浙江省的云服务器
谷歌安装服务器发生错误
网站数据库权限
互联网科技大事
大容量数据库如何备份
奥的斯用服务器查故障
商城软件开发哪里好
关于网络安全术语
安徽党员教育软件开发系统
两当县网络安全图解
服务器维护 费用
网络安全岗位公务员
服务器液态制冷概念股票
2018年网络安全宣传案例
江西数据库空投箱出厂价格
软件开发要求学历吗
艳阳网络技术拼多多直播视频下载
js桌面软件开发
中国生物医学数据库检索
服务器能玩建筑大师吗
动态域名 服务器
东南亚文献数据库
数据库如何进行分页
网络安全工程机