Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java crud控制器和DAO之间的区别是什么?_Java_Mysql_Crud_Dao - Fatal编程技术网

Java crud控制器和DAO之间的区别是什么?

Java crud控制器和DAO之间的区别是什么?,java,mysql,crud,dao,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 Controllers.
 */
public interface CrudController<T> {

List<T> readAll();

T readyById();

T create();

T update();

int delete(); 
}
/*
*为每个控制器定义抽象CRUD方法的接口。
*/
公共接口CrudController{
List readAll();
T readyById();
T create();
T更新();
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;
}
/*
*为每个数据访问对象定义抽象CRUD方法的接口。
*这将涉及JDBC的实现。
*/
公共接口DAO{
List readAll();
T readById(长id);
T readLatest();
T创建(T);
T更新(T);
int-delete(长id);
modelFromResultSet(ResultSet ResultSet)抛出SQLException;
}

我不明白的是,为什么这两个都需要。这项工作应该与使用Java管理mySql模式有关。CrudController和DAO类之间的区别是什么,我认为这两个类都用于数据库持久性和读取。

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

根据您的接口代码,CRUDController从类字段获取输入,而dao从方法参数获取输入。否则,两个类都从数据库获取信息。我不确定modelFromResultSet方法应该做什么。