Java 中的数据访问对象 (DAO)

2022-08-31 04:40:45

我正在浏览一个文档,我遇到了一个名为.我发现它是一个数据访问对象。有人可以解释一下这到底是什么吗?DAO

我知道它是某种用于从不同类型的源访问数据的接口,在我的这个小研究中,我遇到了一个称为数据源或数据源对象的概念,事情在我的脑海中变得混乱。

我真的想知道在编程上使用a是什么。如何使用?任何从最基本的东西解释这个概念的页面的链接也是值得赞赏的。DAO


答案 1

数据访问对象基本上是一个对象或接口,提供对基础数据库或任何其他持久性存储的访问。

该定义来自:http://en.wikipedia.org/wiki/Data_access_object

另请查看此处的序列图:http://www.oracle.com/technetwork/java/dataaccessobject-138824.html

也许一个简单的例子可以帮助你理解这个概念:

假设我们有一个实体来代表一名员工:

public class Employee {

    private int id;
    private String name;


    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

雇员实体将保存到数据库中的相应雇员表中。一个简单的DAO接口来处理操作员工实体所需的数据库操作,如下所示:

interface EmployeeDAO {

    List<Employee> findAll();
    List<Employee> findById();
    List<Employee> findByName();
    boolean insertEmployee(Employee employee);
    boolean updateEmployee(Employee employee);
    boolean deleteEmployee(Employee employee);

}

接下来,我们必须为该接口提供一个具体的实现来处理SQL server,以及另一个处理平面文件等。


答案 2

什么是数据访问对象 (DAO) -

它是一个对象/接口,用于从数据存储数据库中访问数据。

我们为什么使用 DAO:

从数据资源(如数据库)抽象化数据检索。
这个概念是“将数据资源的客户端接口与其数据访问机制分开”。
 

直接访问数据的问题在于数据源可能会更改。例如,假设您的应用程序部署在访问 Oracle 数据库的环境中。然后,它随后部署到使用 Microsoft SQL Server 的环境中。如果应用程序使用存储过程和特定于数据库的代码(如生成数字规则),那么如何在应用程序中处理这种情况?您有两种选择:

  • 重写应用程序以使用 SQL Server 而不是 Oracle(或添加条件代码来处理差异),或者
  • 在应用程序逻辑层和数据访问层之间创建一个层

DAO 模式由以下内容组成:

  • 数据访问对象接口 - 此接口定义要对模型对象执行的标准操作
  • 数据访问对象具体类 - 此类实现上述接口。此类负责从数据源获取数据,数据源可以是数据库/xml 或任何其他存储机制。
  • 模型对象或值对象 - 此对象是简单的 POJO,包含用于存储使用 DAO 类检索的数据的 get/set 方法。

查看示例

希望这能帮你澄清一下DAO!


推荐