Java中的数据访问对象(DAO)
我正在阅读一个文档,我遇到了一个名为DAO
的术语。 我发现它是一个数据访问对象。 有人可以解释我实际上是什么?
我知道这是一种从不同types的数据源获取数据的接口,在我的这个小小的研究中间,我碰到了一个叫做数据源或者数据源对象的概念,事情就被搞乱了。
我真的想知道DAO
在编程方面的用途。 它是如何使用的? 任何链接到页面,解释这个概念从非常基本的东西也赞赏。
数据访问对象基本上是提供对底层数据库或任何其他持久性存储的访问的对象或接口。
该定义来自: 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; } }
员工实体将被保存到数据库中相应的Employee
表中。 处理操作员工实体所需的数据库操作的简单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服务器,另一个处理平面文件等等。
什么是数据访问对象(DAO) –
它是一个对象/接口 ,用于访问数据库中的数据。
为什么我们使用DAO:
它抽象从数据资源(如数据库)中检索数据。 其概念是“将数据资源的客户端接口与其数据访问机制分开”。
直接访问数据的问题是数据的来源可能会改变。 例如,考虑您的应用程序部署在访问Oracle数据库的环境中。 然后将其部署到使用Microsoft SQL Server的环境中。 如果您的应用程序使用存储过程和特定于数据库的代码(例如生成数字序列),那么您如何在应用程序中处理? 你有两个select:
- 重写您的应用程序以使用SQL Server而不是Oracle(或者添加条件代码来处理差异),或者
- 在应用程序逻辑和数据访问之间创build一个图层
其全部称为DAO模式 ,它由以下部分组成:
- 数据访问对象接口 – 该接口定义了要在模型对象上执行的标准操作 。
- 数据访问对象具体类 – 这个类实现上面的接口。 这个类负责从数据源获取数据,数据源可以是数据库/ xml或其他存储机制。
- 模型对象或值对象 – 这个对象是简单的POJO包含get / set方法来存储使用DAO类检索的数据。
请检查这个例子,这将更清楚地清理事情。
例
我认为这件事情一定已经清除了你对DAO的理解。
DAO(数据访问对象)是企业应用程序中非常常用的devise模式。 它基本上是用来访问每个数据源(DBMS,XML等)数据的模块。 我build议你阅读一些例子,像这样:
DAO例子
请注意,有不同的方法来实现原始的DAO模式 ,并有许多框架可以简化您的工作。 例如,像iBatis或Hibernate这样的ORM(对象关系映射)框架被用来将SQL查询的结果映射到java对象。
希望它有帮助,再见!
我认为最好的例子(以及解释)你可以在oracle网站上find: 这里 。 在这里可以find另一个很好的tuturial。
不要混淆太多的解释。 DAO:从名称本身来说,它意味着使用对象访问数据。 DAO与其他业务逻辑分离。
数据访问对象模式或DAO模式用于将低级数据访问API或操作与高级业务服务分离。 以下是数据访问对象模式的参与者。
数据访问对象接口 – 该接口定义了要在模型对象上执行的标准操作。
数据访问对象具体类 – 这个类实现上面的接口。 这个类负责从一个可以是数据库/ xml或其他存储机制的数据源获取数据。
模型对象或值对象 – 这个对象是简单的POJO包含get / set方法来存储使用DAO类检索的数据。
示例代码在这里..
http://www.dzone.com/links/r/java_ee_data_access_object_design_pattern_or_dao.html
数据访问对象pipe理与数据源的连接以获取和存储数据。它抽象出业务对象的底层数据访问实现,以实现对数据源的透明访问。 数据源可以是任何数据库,如RDBMS,XML存储库或平面文件系统等。
DAO是三层架构中的“持久性pipe理器”,DAO也可以参考“四人帮”一书的devise模式。 您的应用程序服务层只需调用DAO类的方法,而不需要知道DAO方法的隐藏和内部细节。
Pojo也被认为是Java中的Model类,我们可以为私人定义的特定variables创buildgetter和setter。 记住所有的variables在这里用私有修饰符声明
Dao类用于重用jdbc逻辑和Dao(数据访问对象)是一种devise模式。 dao是一个简单的包含JDBC逻辑的java类。
数据访问层在单独的业务逻辑层和持久层中被certificate是很好的。 DAOdevise模式完全隐藏了客户端的数据访问实现
Java数据访问对象(Java DAO)是业务应用程序中的重要组件。 业务应用程序几乎总是需要从关系数据库或对象数据库访问数据,Java平台提供了许多访问这些数据的技术。 最古老和最成熟的技术是使用Java数据库连接(JDBC)API,它提供了对数据库执行SQL查询的能力,然后一次一列地获取结果。