HibernateTemplate与HibernateDaoSupport两者都是spring整合hibernate提供的模板技术。

对于保存一个对象,HibernateTemplate需要先配置

配置hibernateTemplate:

  1. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  2. <property name="sessionFactory" ref="sessionFactory" />
  3. </bean>

配置

  1. <bean id="daoTemplate" abstract="true"  lazy-init="true" />
  1. <bean id="empDao" class="com.wzy.dao.impl.EmpDaoImpl" parent="daoTemplate">
  2. <property name="hibernateTemplate" ref="hibernateTemplate"/>
  3. </bean>

操作代码:

  1. package com.wzy.dao.impl;
  2. import org.springframework.orm.hibernate3.HibernateTemplate;
  3. import com.wzy.dao.EmpDao;
  4. import com.wzy.domain.Emp;
  5. public class EmpDaoImpl implements EmpDao{
  6. private HibernateTemplate hibernateTemplate;
  7. public HibernateTemplate getHibernateTemplate() {
  8. return hibernateTemplate;
  9. }
  10. public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
  11. this.hibernateTemplate = hibernateTemplate;
  12. }
  13. @Override
  14. public void save(Emp emp) throws Exception {
  15. getHibernateTemplate().save(emp);
  16. }
  17. }

使用HibernateDaoSupport,很简洁:

  1. package com.wzy.dao.impl;
  2. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  3. import com.wzy.dao.EmpDao;
  4. import com.wzy.domain.Emp;
  5. public class EmpDaoImpl extends HibernateDaoSupport implements EmpDao{
  6. @Override
  7. public void save(Emp emp) throws Exception {
  8. this.getHibernateTemplate().save(emp);
  9. }
  10. }

结论:使用HibernateDaoSupport更方便。但是类继承了HibernateDaoSupport,不能再继承别的类,因此有些不方便。

使用时,灵活选择就是了。下一篇将会再深入分析一下。

Spring HibernateTemplate与HibernateDaoSupport对比的更多相关文章

  1. HibernateTemplate和HibernateDaoSupport(spring注入问题)

    HibernateTemplate HibernateTemplate是spring提供的一个就hibernate访问持久层技术而言.支持Dao组件的一个工具.HibernateTemplate提供持 ...

  2. Spring HibernateTemplate的使用

    Spring HibernateTemplate的使用 2008-03-25 11:38 2020人阅读 评论(0) 收藏 举报 springbeanhibernatesessiondaoclass ...

  3. HibernateTemplate和HibernateDaoSupport

    Spring整合Hibernate后,为Hibernate的DAO提供了两个工具类:HibernateTemplate和HibernateDaoSupport HibernateTemplateHib ...

  4. Spring Cloud介绍 Spring Cloud与Dubbo对比

    spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状 ...

  5. [原创]SSH中HibernateTemplate与HibernateDaoSupport关系

    UserDaoImpl继承了HibernateDaoSupport类,在findAll() 方法里面调用了getHibernateTemplate(), 同时applicationContext.xm ...

  6. spring中使用HibernateTemplate或HibernateDaoSupport报类型转换错误

    使用spring的HibernateDaoSupport的时候.报错例如以下: java.lang.ClassCastException: java.lang.String cannot be cas ...

  7. SessionFactory、HibernateTemplate、HibernateDaoSupport之间的关系说明

    在接触HibernateTemplate之前,我们知道,在对数据库进行CRUD操作之前,需要开启session.transaction等等.在hibernate学习过程中,我们知道了,得到sessio ...

  8. HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good(转)

    Spring+Hibernate两种方法实现增删改查 首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件.再定义好一个Dao接口.准备好一个jdbc.propert ...

  9. 从Spring HibernateTemplate模板方法设计模式的实现谈起

    概述 模板方法模式是GOF设计模式中很典型的设计模式,其意图是由抽象父类控制顶级逻辑,并把基本操作的实现推迟到子类去实现,这是通过继承的手段来达到对象的复用.Spring模板方法模式实际是模板方法模式 ...

随机推荐

  1. 404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序

    刚刚重装了系统,原有的ASP.NET工程下面的WebService无法运行,如下: 404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序 微软的提示,是做三项更改,但是我改了之后 ...

  2. impala系列: 基本命令和jdbc连接

    --======================= 使用impala-shell 登录 --======================= impala-shell --auth_creds_ok_i ...

  3. SQL Server进阶(十一)可编程对象——变量、 批、流元素、 游标

    变量 --------------------------------------------------------------------- -- Variables -------------- ...

  4. ext Table中CommandColumn用法

    <ext:CommandColumn Width="250" Header="功能菜单" ColumnID="test"  Butto ...

  5. 使用jQuery插件时避免重复引入jquery.js文件

    当一个页面使用多个jQuery插件时,需要避免重复引入jquery.js文件,因为后面映入的jQuery.js文件中定义的jQuery对象会覆盖掉前面的jQuery对象,导致之前定义的jQuery插件 ...

  6. H5网页适配 iPhoneX,就是这么简单

    iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题.对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可( ...

  7. Groovy 类名称赋值为变量使用(newInstance & new)

    类创建实例一般方式 http://groovy-lang.org/objectorientation.html#_class class Person { String name Integer ag ...

  8. error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    解决方案 1. http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载twisted对应版本的whl文件(我的Twisted‑17.5.0‑cp36 ...

  9. mybatis 动态sql 插入报错

    1. 值为null必须制定jdbcType 单条执行的话,可以考虑把值为null的字段去掉 2. 值的类型无法解析 比如oracle.sql.TIMESTAMP类型,需转为java.sql.TIMES ...

  10. 【Vue】定义组件 data 必须是一个函数返回的对象

    Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化.对象必须是纯粹的对象 (含有零个或多个的 key/value ...