MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

DAO dan injeksi ketergantungan, saran?

Lapisan DAO "pluggable" biasanya/selalu didasarkan pada antarmuka DAO. Misalnya, mari kita pertimbangkan yang sederhana yang cukup umum:

public interface GenericDAO <T, K extends Serializable> {  
    List<T> getAll(Class<T> typeClass);   
    T findByKey(Class<T> typeClass, K id);  
    void update(T object);  
    void remove(T object);  
    void insert(T object);  
}

(Ini yang Anda miliki di DAO generik Morphia )

Kemudian Anda dapat mengembangkan beberapa implementasi DAO generik yang berbeda, di mana Anda dapat menemukan bidang yang berbeda (tercermin dalam parameter konstruktor, setter dan getter, dll). Mari kita asumsikan yang berbasis JDBC:

public class GenericDAOJDBCImpl<T, K extends Serializable> implements GenericDAO<T, K extends Serializable> {
    private String db_url;

    private Connection;
    private PreparedStatement insert;
    // etc.
}

Setelah DAO generik diterapkan (untuk penyimpanan data konkret), mendapatkan DAO konkret tidak akan sulit:

public interface PersonDAO extends GenericDAO<Person, Long> {

}

dan

public class PersonDAOJDBCImpl extends GenericDAOJDBCImpl<Person, Long> implements PersonDAO {

}

(BTW, apa yang Anda miliki di DAO Dasar Morphia adalah implementasi DAO generik untuk MongoDB).

Hal kedua dalam arsitektur pluggable adalah pemilihan implementasi DAO yang konkret. Saya menyarankan Anda untuk membaca bab 2 dari Apress:Pro Spring 2.5 ("Menempatkan Spring ke dalam "Hello World") untuk mempelajari pabrik dan injeksi ketergantungan secara bertahap.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apa keuntungan menggunakan ObjectId daripada String biasa?

  2. Temukan MongoDB()

  3. Pertunjukan MongoDB - berapa banyak database, koleksi?

  4. Mongoid - kueri dengan dokumen yang direferensikan

  5. Beberapa referensi skema dalam array skema tunggal - luwak