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

时间:2021-03-13 00:13:19

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

1 个答案:

答案 0 :(得分:1)

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