Spring 的HibernateTemplate 支援配置
最近在看spring的文件,看到關於HibernateTemplate的配置,發覺有兩種(當然啦,不止兩種)
第一種是手動配置HibernateTemplate,即在實現的Dao中加上下面這句話
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
並在applicationContex.xml中新增如下配置
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
第二種是採用Hibernate提供的HibernateDaoSupport,即讓實現的Dao去繼承HibernateDaoSupport,此時無需手動配置HibernateTemplate,只要在applicationContext.xml中新增如下配置
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
關於上面這xml配置,其實在配置事務的時候也要用到,即第一種配置已經包含了第二種配置。
PS:配置HibernateTemplate主要是為了使用Hibernate封裝好與資料庫打交道的方法,但其實很多時候,還是需要我們使用到JDBC普通的sql語句,這個時候光使用HibernateTemplate怕是有點難度,最好的方法是手動獲取Session,建立連線,然後在傳入sql語句。