Spring为Hibernate的DAO提供工具类:HibernateDaoSupport。该类主要提供了两个方法:
public final HibernateTemplate getHibernateTemplate()
public final void setSessionFactory(SessionFactory sessionFactory)
其中,setSessionFactory方法接收来自Spring的applicationContext的依赖注入,接收了配置在Spring中的SessionFactory实例,getHibernateTemplate方法用来利用刚才的SessionFactory生成Session,再生成HibernateTemplate来完成数据库的访问。
典型的继承HibernateDaoSupport的DAO代码如下:
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{
public void save(Users transientInstance) {
log.debug("saving Users instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
………………
}
实际上,DAO的实现依然借助了HibernateTemplate的模板访问方式,只是,HibernateDaoSupport将依赖注入SessionFactory的工作已经完成,获取HibernateTemplate的工作也已经完成。注意,这种方法须在Spring的配置文件中配置SessionFactory。
在继承HibrnateDaoSupport的DAO实现里,Hibernate Session的管理完全不需要Hibernate代码打开,而由Spring来管理。Spring会根据实际的操作,采用“每次事务打开一次session”的策略,自动提高数据库访问的性能。
分享到:
相关推荐
hibernateDaoSupport类的详解!
HibernateDaoSupport 类的jar HibernateDao 的jar
Spring hibernate3. HibernateDaoSupport 源码
.相同点:在applicationConext.xml中 ... HibernateDaoSupport: 在impl中要调用的方法要getHibernateTemplate().delete(user); UserDaoHiberateImpl: 在impl中要调用的方法要hibernateTemplate.save(user);
HibernateDaoSupport二次封装组件,快速统计和查询,修改,删除,并且对SQL语句的in,or,exitsts都有涉及
* 继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是 Hibernate Session的轻量级封装 * 默认情况下运行期异常才会回滚(包括继承了RuntimeException子类),普通异常是不会滚的 ...
要HibernateDaoSupport类时,必须加的包
(2) 新建DAO层实现类(该类要实现DAO层接口,继承HibernateDaoSupport类)。 (3) 在Spring配置文件中增加该DAO层实现类的定义,并需要依赖注入一个SessionFactory bean的引用。 7、 开发Service
MyEclipse 2014 使用hibernate3 生成数据库实体类 和 xml映射文件
通过反射+拼字符串的方式将HibernateDAOSupport类的常用方法又封装了一遍
6.5 Spring整合Hibernate 6.6 Spring提供的DAO支持 6.5.2 管理Hibernate的SessionFactory 6.5.3 使用HibernateTemplate 6.5.4 使用HibernateCallBack 6.5.6 使用IoC容器组装...6.5.8了解继承自HibernateDaoSupport类DAO
* 继承HibernateDaoSupport类,使用this.HibernateTemplate这个类持久化数据 * HibernateTemplate是对session的轻量级的封装 * 默认事务回滚异常是RuntiimeException(包括所有继承RuntimeException的子类).普通...
HibernateDaoSupport类提供的主要方法: public final HibernateTemplate getHibernateTemplate() public final void setSessionFactory(SessionFactory sf) 思考题 1. Spring中是怎么对Hibernate进行支持的? 2. ...
一个典型的使用大部分Spring特性的Web...如使用 HibernateDaoSupport, 你可复用已经存在的Hibernate映射。从Controller无缝整合web层和领域模型, 消除对ActionForms的需要和其他转 换HTTP参数为领域模型的类。
} } <br> 上面的UserDAO实现了自定义的IUserDAO接口,并扩展了抽象类: HibernateDaoSupport HibernateSupport实现了HibernateTemplate和SessionFactory实例的关联。 HibernateTemplate对...
实现了简单用户权限登录,项目中含有mysql数据库 加入了基本的拦截器,错误类处理等 加入了BaseDao,Spring3对Hibernate4已经没有了HibernateDaoSupport和HibernateTemplate的支持,使用了原生态的API
数据库访问层:将对持久层数据库的基本添加,修改,查找等操作提取到BaseDAO中,BaseDAO继承Spring的HibernateDaoSupport,各模块DAO继承BaseDAO实现复杂数据访问。由IOC容器DAO的代理实例注入到业务组件中,业务组件...
(项目中在对数据库操作<增删改查>的时候,因为hibernate托管给了spring,spring将使用他框架中的hibernate支持类(HibernateDaoSupport)的find,save,upedate,delete,deleteall等方法对数据库进行增删改查,若...
第一层:HibernateGenericDao,基于spring的HibernateDaoSupport,但加入了分页函数与各种Finder函数,并使用泛型避免了返回值强制类型转换。 第二层:HibernateEntityDao,基于HibernateGenericDao,用泛型声明Dao...
4.* 编写实体类 * User * User.hbm.xml * 配置到spring中. 5.编写DAO * 继承HibernateDaoSupport * 在配置中注入sessionFactory 6.编写Service: * 注入UserDao * 事务管理: 核心代码实现: function checkUsername...