HibernaeTemplate提供了Hibernate操作的 很多方法,不需要得到session,关闭事务等操作,可以在spring中的bean中配置,记得配置hibernate的bean时传入sessionFactory的的注入方式,即
- <!-- dao的操作的bean -->
- <bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl">
- <!-- 注入依赖模板 -->
- <property name="hibernateTemplate" ref="hibernateTemplate" />
- </bean>
- 然后在对应的Custom..Impl上有个
- 设置hibernateTemplate属性
- private HibernateTemplate hibernateTemplate;
- // 必须设置set方法
- public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
- this.hibernateTemplate = hibernateTemplate;
- } ,这样就完成注入了
- 。然后HibernateCallback的出现据说以前是为了解决HibernateTemplate不能分页的问题,有两个主要方法Object execute(Hibernate action)和List executeFind(HibernateCallback action),可以像下面那样子用(下面的类首先实现HibernateDaosupport,原因在最下面)
- List list=getHibernateTemplate().executefind(new HibernateCallback(){
- public Object doInHibernate(Session session){//这样就可以访问到session了。。。。
- }
- });
- HibernateDaoSupport提供了public final HibernateTemplate getHibernateTemplate()//可以得到hibernatTemplate模板,pulic final void setSessionFactory(SessionFactory sessionFactory)。然后就可以通过getHibernateTemplate方便的操作CRUD的操作了。以上就是三者的区别,可能会有些错误,完全是为了自己理解的。