2016-05-21 17 views
1

私は以下の疑問を持っています。明確にする必要があります: 1)私はEmployeeDAOImplクラスにgetEmployeeとaddEmployeeメソッドを実装しています。これらのメソッドはどちらも、SessionFactory、SessionなどのHibernate API用の共通コードを持っています。コードの重複を避けるために、どうすればそれを防ぐことができますか?DAOImplクラスでさまざまなメソッドを記述する際にコードが重複しないようにするにはどうすればよいですか?

2)私のリソースクラスは、DAOレイヤーから直接データにアクセスし、サービスレイヤーに移動する理由は何ですか?

3)私は、MVCアーキテクチャでは、1つのレイヤーがすぐ次のレイヤーからのみデータにアクセスする必要があります。サービス層はDAO層からのデータのみにアクセスする必要があります。この声明は本当ですか? 誰かが私にビジネスオブジェクト、バリューオブジェクト、DTOなどのようなMVC関連の専門用語の明確な概念を提供する適切なリンクや素材を与えることもできますか?

答えて

0
  1. Wrapperクラスを使用するので、重複するコード行は1つだけです。session = HibernateUtil.getSession(); またはSpringを使用してセッション/エンティティを初期化する

  2. 別のDAOレイヤを使用している場合、データストレージをファイルバッキング、キー値データベースまたはリレーショナルデータベースに切り替える方が簡単です。

simple spring app - why use service layer?

DAO and Service layers (JPA/Hibernate + Spring)

0

1.You抽象ような "BaseDAO"

2.Then UserDAOはBaseDAOを拡張と呼ばれる豆、に複製コード:

protected abstract BaseDAO<T>{ 

    //get Session 

    public Integer save(T t) ... 
} 


public UserDAO extends BaseDAO<User>{ 

    public void saveUser(User u){ 
      save(u); 
    } 
} 
関連する問題