crud 控制器和 DAO 有什么区别?

问题描述

我收到了一份带有一些空骨架文件的分配。在这文件中有两个我似乎无法理解的界面。这个:

/*
 * 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 类有什么区别,我虽然这两个都是用于数据库持久化和读取。

解决方法

传统上存在分离以分离与数据库/持久性和业务逻辑的交互。在这种情况下,两者之间的区别在于 CrudController 将处理业务/应用程序逻辑,而 dao 将处理持久性逻辑。例如,在 REST 应用程序的范围内,控制器正在接收请求并调用 dao(或调用 dao 的服务)的实现来执行数据库操作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...