3

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> 

タイプ JdbcTemplate のプロパティを持つ SimpleJdbcDaoSupport を拡張せずにカスタムクラスを作成できます

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

ビーンは次のように定義されます:-

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

ご覧のとおり、両方のクラスが同じことを行います。SimpleJdbcDaoSupport を拡張している間、DataSource を注入し、それなしで jdbcTemplate Bean を直接注入します。それでおしまい。もう違いはありません。したがって、DAOSupport クラスをこれほど多く使用しても、あまり利点はありません。DAOSupport クラスによって提供される追加機能はありますか?

4

1 に答える 1

0

HibernateDAOSupportを使用すると、違いがわかります。1. applicationContextでアプリケーションのパフォーマンスを最適化するように、トランザクションを構成します。

選択:読み取り専用作成/更新:読み取りと書き込み。

  1. 1つのセッションのみを使用します(getHibernateTemplate()およびsessionFactoryを使用)
  2. データベース上の一部のデータを更新する場合、HibernateDAOSupportに実装されているメソッドを使用して変更をマージするだけです。
  3. DAOSupportにはすでに多くのメソッドが実装されており、必要に応じてこれを使用できます。
于 2012-12-13T12:56:22.263 に答える