spring DAOSupport有什么优点

时间:2012-12-13 05:45:28

标签: spring templates dao

我读到了Spring框架的DAOSupport类。但我无法理解这些DAOSuport类的优点。在DAOSupport类中,我们调用getXXXTemplate()方法来获取特定的模板对象,然后进一步使用它来进行数据库访问。

即使没有扩展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 个答案:

答案 0 :(得分:0)

使用HibernateDAOSupport时,您可以看到差异。 1.配置事务以优化applicationContext上应用程序的性能:

  

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

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