其实就作用而言两者是一样的,都是为提供DAO支持,为访问数据库提供支持。
只不过HibernateDaoSupport是Spring对Hibernate的支持,而SqlMapClientDaoSupport是Spring对ibatis的支持。
Hibernate是一个全自动化的ORM框架,而Ibatis是一种半自动化的ORM框架。
Hibernate的全自动化在于已经帮助用户实现了基本的数据库操作,但ibatis则要求用户自己去写Sql语句去实现与数据库的交互操作。
所以说就本质来说两种的作用是一样的。
一致的DAO支持抽象类
为了便于以一种一致的方式使用各种数据访问技术,如JDBC、JDO和Hibernate, Spring提供了一套抽象DAO类供你扩展。这些抽象类提供了一些方法,通过它们你可以 获得与数据访问技术相关的数据源和其他配置信息。
JdbcDaoSupport - JDBC数据访问对象的基类。 需要一个DataSource,同时为子类提供 JdbcTemplate。
HibernateDaoSupport - Hibernate数据访问对象的基类。 需要一个SessionFactory,同时为子类提供 HibernateTemplate。也可以选择直接通过 提供一个HibernateTemplate来初始化, 这样就可以重用后者的设置,例如SessionFactory, flush模式,异常翻译器(exception translator)等等。
JdoDaoSupport - JDO数据访问对象的基类。 需要设置一个PersistenceManagerFactory, 同时为子类提供JdoTemplate。
JpaDaoSupport - JPA数据访问对象的基类。 需要一个EntityManagerFactory,同时 为子类提供JpaTemplate。
类似:
SqlMapClientDaoSupport -- Ibatis数据访问对象的基类。需要一个SqlMapClientFactory和一个datasource,同时 为子类提供SqlMapClientTemplate。