spring DAOSupport有啥优势

Posted

技术标签:

【中文标题】spring DAOSupport有啥优势【英文标题】:What are advantages of spring DAOSupportspring DAOSupport有什么优势 【发布时间】:2012-11-30 23:31:59 【问题描述】:

我阅读了有关 Spring 框架的 DAOSupport 类的信息。但是我无法理解这些 DAOSuport 类的优点。在 DAOSupport 类中,我们调用 getXXXTemplate() 方法来获取特定的模板对象,然后将其进一步用于 DB 访问。

即使不扩展 DAOSupport,我们也可以在我们的类中注入 XXXTemplate。 其余的事情将保持不变。

那么扩展 DAOSupport 类有什么好处呢?

编辑:- 添加示例 类扩展了 spring 的 SimpleJdbcDaoSupport

public class JdbcDao extends SimpleJdbcDaoSupport 
    public int create(Bb obj)         
       getSimpleJdbcTemplate().update("insert into ..... ")  //insert query
    

这个类的Bean可以定义为:-

<bean id="jdbcDao" class="example.dao.support.JdbcDao">  
  <property name="dataSource"><ref local="dataSource"/></property>
</bean> 

我们可以在不扩展 SimpleJdbcDaoSupport 的情况下创建一个自定义类,该类将具有 JdbcTemplate 类型的属性

public class MyDAO 
    public myJdbcTemplate; // ant its getter and setter
    public int create(Bb obj)         
       getMyJdbcTemplate().update("insert into ..... ")  //insert query
    

它的 bean 将被定义为:-

<bean id="jdbcDao" class="MyDAO">  
  <property name="myJdbcTemplate"><ref local="jdbcTemplateBean"/></property>
</bean> 

如您所见,两个类都做同样的事情。在扩展 SimpleJdbcDaoSupport 时,我们正在注入 DataSource,如果没有它,我们将直接注入 jdbcTemplate bean。而已。没有更多的区别。 因此,我看不出如此多地使用 DAOSupport 类有什么好处。 DAOSupport 类提供的任何附加功能?

【问题讨论】:

你能举例编辑吗? 【参考方案1】:

当您使用 HibernateDAOSupport 时,您可以看到不同之处。 1.在applicationContext上配置事务优化应用性能:

选择:只读 创建/更新:读写。

    您只使用一个会话(使用 getHibernateTemplate() 和 sessionFactory) 当我们更新数据库中的某些数据时,我们只会将修改与在 HibernateDAOSupport 上实现的方法合并。 DAOSupport 上已经实现了许多方法,我们可以根据需要使用这些方法。

【讨论】:

你能详细说明一下吗?

以上是关于spring DAOSupport有啥优势的主要内容,如果未能解决你的问题,请参考以下文章

不能将 resultSet.setFetchDirection(ResultSet.TYPE_SCROLL_SENSITIVE) 与 spring jdbc DaoSupport 与 Oracle 一

页面获取不到spring实例化services解决方法

MyBatis对比Spring Data Jpa有啥优势

MyBatis对比Spring Data Jpa有啥优势

netty和spring mvc+tomcat分别实现http 服务器个有啥优势

osgi 与dubbo 有啥优势