getHibernateTemplate用法

携程旅行网景区,评论数据爬虫项目数据库保存附源码 这是一个专门用于爬取某旅行网景区评论数据的Python爬虫项目。项目采用模块化设计,支持MySQL数据库存储,具备完整的异常处理机制和反爬虫策略。 阅读详情
getHibernateTemplate用法

前提条件:你的类必须继承HibernateDaoSupport 
一: 
回调函数: 
public List getList(){
   return (List ) getHibernateTemplate().execute(
     new HibernateCallback() {
      public List doInHibernate(final Session s)
        throws HibernateException, SQLException {

StringBuffer sb = new StringBuffer();
Query query = s.createSQLQuery(sb.toString());//<STRONG>执行普通sql</STRONG>
Query query = s.createQuery(sb.toString());// <STRONG>执行hql </STRONG>
List list = query.list();
return list ;
      }
     });   
}
采用这种做法的好处是:不用关心事务。session的创建和销毁,一切都在程序内部完成。看看名字doInHibernate就知道好处了。不好的是程序看起来比较乱!个人认为。 
二: 
getHibernateTemplate().find():
List list = getHibernateTemplate().find(String sql ):
这种的前提是sql必须是hql ,原始sql 不能执行。

三: 
自己获取session处理。 
获取session的两种方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession(); 
获取session以后再createQuery操作就一样了。但是这种做法,是需要自己去手动关闭session的。所以你需要配置openSessioninview,个人认为不推荐使用!

其他: 
getHibernateTemplate.delete(Object);

getHibernateTemplate.save(Object); 
getHibernateTemplate.update(Object);

总结:推荐使用回调函数。

 

HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:

q void delete(Object entity):删除指定持久化实例

q deleteAll(Collection entities):删除集合内全部持久化类实例

q find(String queryString):根据HQL查询字符串来返回实例集合

q findByNamedQuery(String queryName):根据命名查询返回实例集合

q get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例

q save(Object entity):保存新的实例

q saveOrUpdate(Object entity):根据实例状态,选择保存或者更新

q update(Object entity):更新实例的状态,要求entity是持久状态

q setMaxResults(int maxResults):设置分页的大小

下面是一个完整DAO类的源代码:

public class PersonDAOHibernate implements PersonDAO

{

 //采用log4j来完成调试时的日志功能

private static Log log = LogFactory.getLog(NewsDAOHibernate.class);

 //以私有的成员变量来保存SessionFactory。

private SessionFactory sessionFactory;

//以私有变量的方式保存HibernateTemplate

private HibernateTemplate hibernateTemplate = null;

 //设值注入SessionFactory必需的setter方法

 public void setSessionFactory(SessionFactory sessionFactory)

{

 this.sessionFactory = sessionFactory;

 }

 //初始化本DAO所需的HibernateTemplate

public HIbernateTemplate getHibernateTemplate()

{

 //首先,检查原来的hibernateTemplate实例是否还存在

 if ( hibernateTemplate == null)

 {

 //如果不存在,新建一个HibernateTemplate实例

 hibernateTemplate = new HibernateTemplate(sessionFactory);

 }

 return hibernateTemplate;

}

 //返回全部的人的实例

 public List getPersons()

 {

 //通过HibernateTemplate的find方法返回Person的全部实例

 return getHibernateTemplate().find("from Person");

 }

 public void savePerson(Person person)

 {

 getHibernateTemplate().saveOrUpdate(person);

 }

 /**

 * @ param personid 需要删除Person实例的主键

 * /

 public void removePerson(int personid)

 {

 //先加载特定实例

 Object p = getHibernateTemplate().load(Person.class, new Integer(personid));

 //删除特定实例

 getHibernateTemplate().delete(p);

 }

}


Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图 今天教使用dashboard的chart组件和slider组件来是实现一个双线的折线图。效果如下 拖动顶部的电量和水量,低下的图表会实时显示时间和值之所以做这个模拟案例,是将教 大家使用chart节点和slider节点先说一下slider节点,该节点是一个滑块节点,可以接受上一节点的 msg.payload,作为滑块的值, slider必须设置最大值和最小值。且不能动态设置。 此外当用户拖动slider滑块,改变值时,该节点会向下传递当前值 以属性payload装载。在说一下chart节点,该节点可以用于 阅读详情

相关推荐

Vivado时序约束实战:input_delay在高速接口设计中的关键作用

本文深入探讨了在Vivado时序约束中,input_delay对于高速接口设计的关键作用。通过一个RGMII以太网接口调试的实际案例,解释了为何仅靠仿真正确而实际数据采集会失败,并揭示了set_input_delay约束的本质是告知时序分析工具外部芯片的时序关系,而非添加物理延迟。文章详细讲解了如何根据数据手册计算约束值、针对不同采样时钟方案(如移相时钟)进行约束,并指导如何通过时序报告验证约束效果,是解决FPGA高速接口时序问题的实战指南。

ee345的博客 252

getHibernateTemplate方法

getHibernateTemplate 前提条件:你的类必须继承HibernateDaoSupport  一:  回调函数:  public List getList(){    return (List )getHibernateTemplate().execute(     new HibernateCallback() {      public List doInHiber

i_mc_90的专栏 1323

基于C#的ASP.NET开发的党史学习网站课设

开展党史学习教育,就是要以史为镜、以史明志,把苦难辉煌的过去、日新月异的现在、光明宏大的未来贯通起来,在鉴往知来中砥砺前行,在乱云飞渡中把准航向,在凝心聚力中团结奋斗,共同创造新的历史伟业。登陆按钮与数据库进行连接,逻辑实现是如图3.1.3所示,自己定义一个SQL查询语句,将账号、密码放入SQL查询语句中,用sqlDataReader.HasRows语句进行逐一比较,找出结果,将用户名存入session并调用cookies,如果结果存在就关闭数据库,进行数据跳转,并弹出登陆成功的提示框,并关闭数据库。

m0_62408555的博客 974

getHibernateTemplate().execute(new HibernateCallback())方法

1. HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session),该方法   只有一个参数 Session。   2. 方法 doInHibernate 的方法体就是 Spring执行的持久化操作。   3. 使用HibernateTemplate执行execute(new Hibernate...

zhangmiao12的专栏 359

银河麒麟(ky10)x86与arm双架构下编译zlmediakit的实战指南

本文提供了在银河麒麟(ky10)操作系统上,针对x86与arm双架构编译部署流媒体服务器zlmediakit的完整实战指南。文章详细阐述了从环境准备、依赖安装、代码获取到编译构建与测试的全过程,重点解析了两种CPU架构下的关键差异与注意事项,帮助开发者高效完成国产化平台上的流媒体服务搭建。

weixin_29306875的博客 101

C++坦克大战源代码

【代码】C++坦克大战源代码。

强国豪,林中霖 2610

遇到异常Session/EntityManager is closed

使用struts2+hibernate遇到的问题 使用hibernate操作是数据库时遇到异常Session/EntityManager is closed 1、第一进行删除操作时,会调用dao层进行删除,但是 第二次在继续删除时就会报异常 原因:每次调用了session之后, 在事务提交了以后就会把session关闭 这是因为Hibernate会维护这个Session, 在我提交事务的时...

qq_38707216的博客 9572

CSR mascon产品深度解析

GRACE数据产品 mascon产品 质量变化 地球重力场

weixin_43047707的博客 4435

Hibernate hql getHibernateTemplate()常用方法汇总

getHibernateTemplate()常用方法 [b]一、find(String queryString);  [/b]       示例:[code="java"]this.getHibernateTemplate().find("from bean.User");[/code]         返回所有User对象   [b]二、find(String querySt...

zwdsmileface的专栏 401

OCR技术解析:用Tesseract和PaddleOCR识别文本

OCR技术解析:用Tesseract和PaddleOCR识别文本 ,人工智能,计算机视觉,大模型,AI,光学字符识别(Optical Character Recognition,简称 OCR)是一项将图片、扫描件等文档中的文字信息转换为可编辑文本的技术。在数字化时代,OCR 技术广泛应用于文档处理、车牌识别、身份证识别、古籍数字化等领域,极大地提高了文字信息处理的效率。Tesseract 和 PaddleOCR 是两款极具代表性的 OCR 工具。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

Java调用OpenDDS(2)-理解OpenDDS自带的Messager示例

理解Messenger

zhangzl419 1660

Hibernate 的getHibernateTemplate()方法使用

<br />getHibernateTemplate()spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修改和删除等操作,此方法是在配置了spring以后,hibernate由spring接管,不直接使用hibernate的session了 HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的

wintree的专栏 2万+

【C语言】字符常量详解

字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。

LuckiBit 5021

getHibernateTemplate 用法

SSH的项目中,使用getHibernateTemplate 与 getSession有什么的区别? HibernateTemplate 提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring  2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。 下面是Hiberna

guomeiran的专栏 606

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

getHibernateTemplate()用法

getHibernateTemplate()方法是在配置了spring以后,hibernate由spring接管,不直接使用hibernate的session。   HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作: public void saveEmployee(Employee employee) { this.getH

qq_29762913的博客 466

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【SSH】getHibernateTemplate()的用法

类中如果需要使用getHibernateTemplate,则该类必须继承HibernateDaoSupport。 HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRU...

心似烟火 433

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

getHibernateTemplate()的用法

前提条件:你的类必须继承HibernateDaoSupportHibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作。getHibernateTemplate和getSession的区别getHibernateTemplate已经封装好了一些基本的方法,可以直接去用,也就是template嘛,而getSession只是获取一个数据工厂的ses...

sinat_35190665的博客 691

getHibernateTemplate用法(转载)

getHibernateTemplate 转载:  http://www.cnblogs.com/JemBai/archive/2011/01/17/1937413.html SSH的项目中,使用getHibernateTemplate 与 getSession有什么的区别?优点与缺点是什么,谢谢回答!悬赏分:0 - 解决时间:2008-10-7 09:42SSH的项目中,使用getHiberna

winerdaxian的专栏 2883
上一篇: jsp基础速成精华讲解
下一篇: 通过动态方法处理多个提交请求
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值