MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

DAO i wstrzykiwanie zależności, porady?

„Wtyczkowa” warstwa DAO jest zwykle/zawsze oparta na interfejsie DAO. Rozważmy na przykład dość ogólny prosty:

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);  
}

(To jest to, co masz w Ogólne DAO Morphii )

Następnie można opracować kilka różnych ogólnych implementacji DAO, w których można znaleźć różne pola (odzwierciedlające parametry konstruktora, settery i gettery itp.). Załóżmy, że oparty na JDBC:

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

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

Po zaimplementowaniu ogólnego DAO (dla konkretnego magazynu danych), uzyskanie konkretnego DAO nie byłoby trudne:

public interface PersonDAO extends GenericDAO<Person, Long> {

}

i

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

}

(Przy okazji, co masz w BasicDAO Morphii jest implementacją ogólnego DAO dla MongoDB).

Drugą rzeczą w architekturze pluggable jest wybór konkretnej implementacji DAO. Radziłbym przeczytać rozdział 2 z Apress:Pro Spring 2.5 („Putting Spring in „Hello World”), aby stopniowo uczyć się o fabrykach i wstrzykiwaniu zależności.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie o inny model w metodzie instancji innego modelu

  2. MongoDB w Go z mgo, operatory z bson.M / bson.D zawsze mają błąd składni

  3. W poleceniu mongodb group/map określ procentowy udział grupy w sumie

  4. Jak korzystać z funkcji agregacji mongo db-query

  5. Jak uzyskać identyfikator obiektu po zapisaniu obiektu w Mongoose?