关于ssh为什么要在DAO层实现类中继承HibernateDaoSupport的原因
2017-11-06 19:04
501 查看
Spring的Hibernate ORM 框架带来了方便的HibernateDaoSupport类,你的DAO类可以继承它:
如果你选择这种设计,就需要动态注入SessionFactory而HibernateDaoSupport包含这个属性.这个类提供了一个方便的方法getHibernateTemplate(); 就能得到HibernateTemplate的一个实例.
它也有getSession()和releaseSession,以便于你应为某些原因而不使用HibernateTempate的情况下执行Hibernate操作。
HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交。在JDBC中一个Connection对象使用一个事务,那么在Hibernate中一个事务肯定要关联一个SessionFactory了,然而这个SessionFactory却没有在DAO中体现。其实主要的原因是HibernateDaoSupport类已经默默地做了封装的工作,它用一个setSessionFactory方法将SessionFactory进行注入,所以继承自HibernateDaoSupport类的DAO都会具有SessionFactory的属性,从而可以通过SessionFactory创建Session实例操作数据库。
在继承HibrnateDaoSupport的DAO实现里,Hibernate Session的管理完全不需要Hibernate代码打开,而由Spring来管理。Spring会根据实际的操作,采用“每次事务打开一次session”的策略,自动提高数据库访问的性能。
public class UserDaoHibernate extends HibernateDaoSupport implements UserDao{ ................. }
如果你选择这种设计,就需要动态注入SessionFactory而HibernateDaoSupport包含这个属性.这个类提供了一个方便的方法getHibernateTemplate(); 就能得到HibernateTemplate的一个实例.
它也有getSession()和releaseSession,以便于你应为某些原因而不使用HibernateTempate的情况下执行Hibernate操作。
HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交。在JDBC中一个Connection对象使用一个事务,那么在Hibernate中一个事务肯定要关联一个SessionFactory了,然而这个SessionFactory却没有在DAO中体现。其实主要的原因是HibernateDaoSupport类已经默默地做了封装的工作,它用一个setSessionFactory方法将SessionFactory进行注入,所以继承自HibernateDaoSupport类的DAO都会具有SessionFactory的属性,从而可以通过SessionFactory创建Session实例操作数据库。
在继承HibrnateDaoSupport的DAO实现里,Hibernate Session的管理完全不需要Hibernate代码打开,而由Spring来管理。Spring会根据实际的操作,采用“每次事务打开一次session”的策略,自动提高数据库访问的性能。
相关文章推荐
- SSH中daoImpl类继承HibernateDaoSupport的用法
- 继承HibernateDaoSupport实现DAO(spring整合hibernate)
- 关于DAO实现类继承JdbcDaoSupport类后,使用注解无法注入DataSource的问题
- ssh中的HibernateDaoSupport 实现分页
- 继承HibernateDaoSupport实现DAO(spring整合hibernate)
- SSH整合,"sessionFactory " or "hibernateTemplate " is required異常 继承HibernateDaoSupport
- SSH中继承HibernateDaoSupport 的通用Dao
- 当Dao层继承了HibernateDaoSupport,使用底层SQL语句,session获取的方法,以及解决关联查询no session的问题
- 关于DAO层的sessionFactory注入和是否继承HibernateDAOSupport
- SSH之继承HibernateDaoSupport对数据库的操作和不继承HibernateDaoSupport对数据库的操作的方法
- SSH的一个BaseDao继承HibernateDaoSupport(一)
- SSH的一个BaseDao继承HibernateDaoSupport(二)
- 继承“HibernateDaoSupport”后,报“The hierarchy of the type AccoutDaoImpl is inconsistent”的解决方案
- 子类继承HibernateDaoSupport后如何注入SessionFactory
- Spring使用HibernateDaoSupport、HibernateTemplate和JdbcTemplate实现CURD
- 继承了HibernateDaoSupport的DAO
- 关于该死的HibernateDaoSupport
- 继承HibernateDaoSupport后怎样获取session&&注入sessionFactory
- 继承hibernateDaoSupport之后通过注解方式注入SessionFactory
- hibernatedaosupport分页的三种实现