spring和hibernate整合之hibernateTemplate的使用

       在进行spring和hibernate整合之前,我们先要缕清在hibernate中是如何进行数据操作的。在Hibernate中,每一次进行数据操作时都是先要开启事务------>进行数据操作--------->然后提交事务---------->关闭事务。我们需要进行以上的操作是因为Hibernate在默认的情况下事务自动提交是关闭的,即是false。当然如果你不想每次都手动提交事务,也可以在hibernate.cfg.xml配置文件中进行设置:

<!-- 设置hibernate事务提交为自动 -->
<property name="hibernate.connection.autocommit">true</property>

       那么在Spring和Hibernate整合之后,会有什么样的变化呢?在这里有个注意点需要说明,上面也说了,Hibernate的事务自动提交是关闭的,但是在Spring中事务自动提交是开启的。 但是呢,Spring和Hibernate有两种整合方式,第一种就是使用Hibernate.cfg.xml来配置数据源,另一种是由Spring进行数据源的配置,代码如下:

spring和hibernate整合之hibernateTemplate的使用

在两者整合后,spring为Hibernate提供了一个数据操作类HibernateTemplate,在使用这个方法是需要注意Spring和Hibernate整合的方式,如果是使用hibernate.cfg.xml的整合方式,在用HibernateTemplate进行数据操作数据会失败,因为Hibernate默认情况下事务提交是手动的。第二种则可以成功。当然啦,对于spring也可以将事务提交设置为手动提交:

<property name="defaultAutoCommit">
<value>false</value>
</property>