#java #mongodb #servlets #design-patterns
#java #mongodb #сервлеты #шаблоны проектирования
Вопрос:
Зная, что есть некоторые рамки для выполнения этого в реальной ситуации. Поскольку я учусь с нуля, мне интересно, возможно ли создать чистый MongoDB DAO в качестве слоя поверх Service
класса для выполнения CRUD
операций, которые также облегчают его использование другим DAO?
Например, ниже приведен мой общий класс DAO для управления процессом CRUD.
public interface IGenericDAO<T> {
public T create(T t);
public T update(T t);
public T get(Object id);
public void delete(Object id);
public List<T> listAll();
public Long count();
}
Затем класс DAO должен реализовать свои операции
public class UserDAO implements IGenericDAO<User> {
MongoDatabase database = dBUtils.getMongoDB();
MongoCollection <Document> userTbl = database.getCollection("User");
public UserDAO() {
super();
}
@Override
public User create(User user) {
return user;
}
// other CURD below
}
Класс обслуживания пользователя
public class UserService {
private UserDAO userDAO;
public UserService() {
}
public void listUser() {
// need to test
List<User> listUsers = userDAO.listAll();
}
public void create(User user) {
// this what I want to see. user is saved to db here
try {
MongoDatabase database = dBUtils.getMongoDB();
assert mdb != null;
// create or get collection
MongoCollection<User> userTbl = database.getCollection("Users", User.class);
User userDoc = new User();
userTbl.insertOne(userDoc);
} catch (Exception e) {
e.printStackTrace();
}
}
Сказав это, я хочу поместить «слой» MongoDB между DAO и классом Service для выполнения операции CRUD. Интересно, нужно ли это, иначе, как это сделать, чтобы помочь UserService
UserDAO
классу with?
Комментарии:
1. Я мог бы использовать morphia, но, вероятно, у меня ограниченные знания, и я хочу попытаться изучить чистый MongoDB, чтобы сначала отображать CRUD в браузере.