Hibernate DAO类怎么使用
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要讲解了"Hibernate DAO类怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Hibernate DAO类怎么使用"吧!在St
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
软件开发工程师生活形态
5g软件开发工程师干嘛的
高中网络技术公开课
数据库实验环境
国家网络安全学院赵波
软件开发需求分析任务概述
论剑网络安全峰会
现代网络技术与课堂教学
java连接数据库的驱动
鹰潭企业服务器要多少费用
南阳哪家软件开发好
网络技术口诀
富途网络安全技术
学习网络安全的笔记本
小杜网络安全从我起季手抄报
hybrid 数据库
日本樱花服务器
刀片式服务器安装要求
网络安全营销岗
中国移动网络安全方案安全上网
湖北查分软件开发
华为订阅管理显示无法连接服务器
怎么看一个数据库多大
米思米无法访问服务器上的端口
国际版服务器显示连接超时
数据库用户登录密码忘了
计算机网络技术专科找什么工作
网络技术中fcas
运城软件开发平均价格
空间数据库和地理科学的关系