日期:2014-05-20  浏览次数:20706 次

HibernateDaoSupport 与 SqlMapClientDaoSupport有什么区别??
以前学习都是用的数据库操作都是继承 HibernateDaoSupport ,下载个程序偶尔发现他是 继承的 SqlMapClientDaoSupport 。
请问这两个有什么区别啊 越具体越好 ,谢了。


------解决方案--------------------
一个是针对hibernate的工具类
一个是针对ibatis的工具类
使用方法类似,
------解决方案--------------------
其实就作用而言两者是一样的,都是为提供DAO支持,为访问数据库提供支持。
只不过HibernateDaoSupport是Spring对Hibernate的支持,而SqlMapClientDaoSupport是Spring对ibatis的支持。Hibernate是一个全自动化的ORM框架,而Ibatis是一种半自动化的ORM框架。Hibernate的全自动化在于已经帮助用户实现了基本的数据库操作,但ibatis则要求用户自己去写Sql语句去实现与数据库的交互操作。
所以说就本质来说两种的作用是一样的。
------解决方案--------------------
一个用于hibernate框架,一个用于ibatis框架。
------解决方案--------------------
LZ应该多看看源代码。。。还有很多类似的DaoSupport类,比如JdbcDaoSupport,Spring对很多个O-R Mapping工具也都有相应的Support
------解决方案--------------------
拷贝两段spring的帮助
10.3. 一致的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。