什么是 DAO

Fanly 问答 2018-03-16 22:04:13 阅读(...)

数据访问对象(data access object,DAO)是为某种类型的数据库或其他持久性机制提供一个抽象接口的对象。通过映射应用程序对持久层的调用,DAO提供一些特定的数据操作,而无需暴露数据库细节。

数据访问对象(data access object,DAO)是为某种类型的数据库或其他持久性机制提供一个抽象接口的对象。通过映射应用程序对持久层的调用,DAO 提供一些特定的数据操作,而无需暴露数据库细节。这种隔离支持单一功能原则。它分离了应用程序需要访问哪些数据,就域特定对象和数据类型(DAO 的公共接口),而言,这些需求可以用数据库管理系统(DBMS)、数据库模式等满足(DAO 的实现)。

data access

尽管这种设计模式同样适用于以下内容:1、大多数编程语言;2、有持久化需求的大多数软件类型;3、大多数数据库。它在传统上与 Java EE 应用程序和关系数据库相关(通过 JDBC API 访问,因为它源于 Sun Microsystems 的最佳实践指南,该平台的“核心 J2EE 模式”)。

优点

使用数据访问对象的优点是应用程序的两个重要部分之间相对简单并严格分离,它们可以但不应该彼此了解任何东西,并且两者可预期的频繁和独立发展。改变业务逻辑可以依赖于相同的 DAO 接口,而对持久性逻辑的更改只要接口保持正确实现,就不会影响 DAO 客户端。存储的所有细节都隐藏在应用程序的其余部分中(见信息隐藏)。因此,可以修改一个 DAO 实现而不影响应用程序的其余部分,从而可能实现对持久性机制的更改。DAO 充当了应用程序与数据库之间的中介,它们在对象与数据库记录之间来回转移数据。用测试替身取代 DAO 可以促进代码的单元测试,使测试不依赖于持久层。

在 Java 编程语言的非特定上下文中,数据访问对象作为一项设计概念可以用多种方式实现。这可以将应用程序中的数据访问部分分离为非常简单的接口,迁移到框架或商业产品。DAO 编码范例可能需要一些技巧。像是 Java Persistence API 和 Enterprise JavaBeans 之类的技术已内置在应用程序服务器中,可以在 JavaEE 应用程序服务器的应用程序中使用。商业产品如 TopLink 可以在基于对象关系映射(ORM)的产品上使用。流行的开源 ORM 产品包括 Doctrine (PHP)、Hibernate、iBATIS,以及 JPA 实现(例如 Apache OpenJPA)。

缺点

使用 DAO 的潜在缺点包括抽象泄漏、代码重复和抽象反演。尤其是将 DAO 作为常规 Java 对象的抽象会隐藏每个数据库访问的高成本,并且可能强迫开发人员触发多个数据库查询来检索普通 SQL 查询中一次就可取回的信息。如果一个应用程序需要多个 DAO,人们可能发现自己对每个 DAO 重复基本上相同的创建、读取、更新和删除代码。不过,也可以实现一个处理常用操作的通用 DAO 来避免样板化代码。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Web browser 网页浏览器

    什么是超级浏览器

    超级浏览器是一款可以进行多任务的最佳网页浏览器,专门为跨境电商卖家们打造的多账号防关联的工具,是一个能够为卖家们搭建安全稳定的登录环境,来方便卖家们的多店铺管理,做到环境上的隔离,在IP上的区分。
  • Smart key 智能钥匙

    什么是汽车无钥匙启动

    无钥匙启动系统即运行车子无需掏拧钥匙,持此钥匙靠近车门大概2米,无须开车门,手拉即可打开,上车后,无须将钥匙插进钥匙孔,直接旋转钥匙开关,启动车辆。离开车辆后,无须锁车,远离车门大概2米,车门自动落锁,更加便捷,也使豪华感、科技感倍增。
  • BYD

    什么是手环钥匙

    手环钥匙是一款将智能穿戴理念引入汽车行业的创新产品,具备汽车智能钥匙和运动手环的双重功能,用户只需佩戴手环即可实现解闭锁车门、一键启动、运动监测、智能提醒等功能,隶属于比亚迪汽车工业有限公司旗下。
  • Monkeypox virus 猴痘病毒

    什么是猴痘病毒

    猴痘是一种病毒性人畜共患病,发生于非洲中西部雨林中的猴类,也可感染其他动物,临床表现类似天花,可以通过直接密切接触由动物传染给人,也可人与人之间传播,传染途径主要包括血液和体液,应避免在无防护情况下接触患病或死亡动物,食用肉类必须彻底煮熟。
  • Smart glasses 智能眼镜

    什么是智能眼镜

    智能眼镜,也称智能镜,是指如同智能手机一样拥有独立的操作系统,可以通过软件安装来实现各种功能的可穿戴的眼镜设备统称,它是最近几年被提出而且是最被看好的可穿戴智能设备之一,具有使用简便,体积较小等特点。
  • Web page tampering 网页篡改

    什么是网页篡改

    网页篡改是最为常见的一种攻击形式。网页篡改是一种通过网页应用中的漏洞获取权限,非法篡改Web应用中的内容、植入暗链等,传播恶意信息,危害社会安全并牟取暴利的网络攻击行为,网站篡改发生后,可能会对企业及访问用户造成非常大的损失。