【问题标题】:What is the difference between a crud controller and a DAO?crud 控制器和 DAO 有什么区别?
【发布时间】:2021-06-10 23:56:50
【问题描述】:

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

/*
 * 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 从方法参数中获取输入。否则,两个类都从数据库中获取信息。我不确定 modelFromResultSet 方法应该做什么。

标签: java mysql crud dao


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-05
    • 2010-11-08
    • 2011-05-07
    • 2010-10-04
    • 1970-01-01
    • 2012-05-07
    • 2018-06-03
    • 2011-04-14
    相关资源
    最近更新 更多