HibernateDaoSupport

王朝百科·作者佚名  2010-03-05  
宽屏版  字体: |||超大  

Spring的Hibernate ORM 框架带来了方便的HibernateDaoSupport类,你的DAO类可以继承它:

public class StudentDaoHibernate extends HibernateDaoSupport implements StudentDao{

.................

}

如果你选择这种设计,就需要织入SessionFactory--HibernateDaoSupport包含这个属性.这个类提供一个方便的方法

getHibernateTemplate(); 很容易就能得到HibernateTemplate的一个实例.它也有getSession()和closeSessionIfNecessary()方法,以便于你应为某些原因而不使用HibernateTempate的情况下执行Hibernate操作。

HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交。在JDBC中一个Connection对象使用一个事务,那么在Hibernate中一个事务肯定要关联一个SessionFactory了,然而这个SessionFactory却没有在DAO中体现。其实主要的原因是HibernateDaoSupport类已经默默地做了封装的工作,它用一个setSessionFactory方法将SessionFactory进行注入,所以继承自HibernateDaoSupport类的DAO都会具有SessionFactory的属性,从而可以通过SessionFactory创建Session实例操作数据库

 
© 2005- 王朝百科 版权所有