为了实现DAO组件,Spring提供了大量的XxxDaoSupport类,这些DAO支持类对于实现DAO组件有很大的帮助,因为这些DAO支持类完成了大量基础性工作。
Spring为Hibernate的DAO提供工具类:HibernateDaoSupport。该类主要提供如下两个方法来简化DAO的实现:
(1)public final HibernateTemplate getHibernateTemplate()
(2)public final void setSessionFactory(SessionFactory sessionFactory)
在继承HibernateDaoSupport的DAO实现里,程序无须理会Hibernate的Session管理,Spring会根据实际的操作,采用“每次事务打开一次session”的策略,自动提高数据库访问的性能。
1 2 3 4 5 6 7 8 9 10 11 12 |
package com.dao.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.dao.IMyHibernateDaoSupport; public class MyHibernateDaoSupport extends HibernateDaoSupport implements IMyHibernateDaoSupport { public void testDao(){ List list = getHibernateTemplate().find("from NewsInf"); System.out.println("list.size()="+list.size()); } } |
1 2 3 |
<bean id="myHibernateDaoSupport" class="com.dao.impl.MyHibernateDaoSupport"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> |