我收到了一份带有一些空骨架文件的分配。在这些文件中有两个我似乎无法理解的界面。这个:
/*
* Interface defining abstract CRUD methods for each of your Controllers.
*/
public interface CrudController<T> {
List<T> readAll();
T readyById();
T create();
T update();
int delete();
}
还有这个:
/*
* Interface defining abstract CRUD methods for each of your Data Access Objects.
* Implementation of this will involve JDBC.
*/
public interface DAO<T> {
List<T> readAll();
T readById(Long id);
T readLatest();
T create(T t);
T update(T t);
int delete(Long id);
T modelFromResultSet(ResultSet resultSet) throws SQLException;
}
我不明白为什么需要这两者。这项工作应该与使用 Java 管理 mySql 模式有关。 CrudController 和 DAO 类有什么区别,我虽然这两个都是用于数据库持久化和读取。
答案 0 :(得分:1)
传统上存在分离以分离与数据库/持久性和业务逻辑的交互。在这种情况下,两者之间的区别在于 CrudController 将处理业务/应用程序逻辑,而 dao 将处理持久性逻辑。例如,在 REST 应用程序的范围内,控制器正在接收请求并调用 dao(或调用 dao 的服务)的实现来执行数据库操作。