3.1.3 数据访问模式
1.模式1——在线访问(如图3-4所示)
在线访问是最基本的数据访问模式,也是以前在实际开发过程中最常采用的。这种数据访问模式会占用一个数据库连接,读取数据,每个数据库操作都会通过这个连接不断地与后台的数据源进行交互。早期的数据访问技术都使用的是这种模式,如ODBC,ADO,JDBC 1.0等。具体表现示意如图3-4所示。
|
| 图3-4 |
2.模式2——Data Access Object(如图3-5所示)
DAO 模式是标准 J2EE 设计模式之一,开发人员常常用这种模式将底层数据访问操作与高层业务逻辑分离开。一个典型的 DAO 实现通常有以下组件:一个 DAO 工厂类、一个 DAO 接口、一个实现了 DAO 接口的具体类和数据传输对象(有时称为值对象)。这当中具体的 DAO 类包含了特定数据源的访问逻辑。具体表现示意如图3-5所示。
|
| 图3-5 |
3.模式3——Data Transfer Object(如图3-6所示)
Data Transfer Object 也是经典 EJB 设计模式之一,用于解决在线访问模式和DAO模式中值对象的诸多问题。 DTO 本身是这样一组对象或是数据的容器,它需要跨不同的进程或网络的边界来传输数据。这类对象本身应该不包含具体的业务逻辑,并且通常这些对象内部只能进行一些诸如内部一致性检查和基本验证之类的方法,而且这些方法最好不要再调用其他的对象行为。具体表现示意如图3-6所示。
|
| 图3-6 |
在具体设计这类对象( DTO )的时候,通常可以有两种选择:
(1)使用编程语言内置的集合对象。
(2)通过创建自定义类来实现 DTO 对象。
具体实现中有许多方法试图将上述这两种方法的优点结合在一起。第一种方法是代码生成技术,该技术可以生成脱离现有元数据(如可扩展标记语言 ( XML ) 架构)的自定义 DTO 类的源代码;第二种方法是提供更强大的集合,尽管它也是平台内置的一般的集合,但它将关系和数据类型信息与原始数据存储在一起,比如 IBM 提出的 SDO 技术或是微软 ADO.NET 中的 DataSet 就支持这类方法。
无论采用上述的哪种方法,当有了 DTO 对象之后,就需要用数据来填充它。在大多数情况下,DTO 内部填充的数据往往来自于多个其他种类的对象;由于 DTO 对象中很少有具体的数据操作方法,因此它很难从其他对象中直接提取数据。这种设计是有道理的,因为如果不让 DTO 对象知道如何调用其他对象的方法,我们就可以在不同的场合直接重用 DTO 对象,这样一旦其他对象发生更改,我们无须修改 DTO 对象的设计。
4.模式4——离线数据模式
离线数据模式是这样一种数据访问模式。
·以数据为中心:数据从数据源获取之后,将按照某种预定义的结构(这种结构可以是 SDO 中的 Data 图表结构,也同样可以是 ADO.NET 中的关系结构)存放在系统中,成为应用的中心。
· 离线:对数据的各种操作独立于各种与后台数据源之间的连接或者事务。
· 与 XML 集成:离线数据集所维护的数据可以方便地与 XML 格式的文档之间互相转换。
· 独立于数据源:离线数据模式的不同实现定义了数据的各异的存放结构和规则,这些都是独立于具体的某种数据源的。
现在,离线数据访问技术有多种实现:
·WebSphere 平台中的实现——SDO。
·在 JDBC v3.0 规范中支持的 CachedRowSet。
·微软 .NET 框架下的 ADO.NET 技术。
5.模式5——对象/关系映射(O/R Mapping: Object/Relation Mapping)
ORM以一种特殊的访问模式最近流行起来,现在已经成为一种重要的数据访问技术。下面会对ORM进行详细介绍。
| 回书目 上一节 下一节 |
|
||||
| · 隐私保护技术探讨 · Windows Server 2008专.. · WCF开发基础 · Linux——从菜鸟到高手 · 微软出价446亿美元收购.. · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 微软Forefront企业安全.. |
· 如何优化IT 控制能耗 · 国际文档格式标准开战 · CISSP认证成长之路 · 珊瑚虫QQ作者侵权案开庭 · 贝恩资本携手华为22亿.. · 802.11n:下一代的无线.. · 体验Visual Studio 200.. · 运营商封堵非法ADSL共享 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 子网掩码教程 · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 中间件应用技术专题 · 深入了解PGP加密技术 · 病毒查杀专题 |
· VPN技术 · 国际文档格式标准开战 · SSL VPN详细知识 · Linux防火墙 · 打造安全服务器 · Sniffer安全技术从入门.. · 木马原理与防范 · ADSL应用面面俱到 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · 子网掩码教程 · RAID——磁盘阵列基础 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · VPN技术 · 了解统一威胁管理(UTM).. · 网络钓鱼 · ADSL应用面面俱到 · ADSL应用面面俱到 |
|||