动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.采用POI创建Excel文件.
.Java调试教程-Java调试器(JDB)概.
.类的集合--包.
.Java学习的捷径.
.Sun推出编程用Java无线传感器开发.
.Java套接字编程(下).
.初学者入门:Tomcat在Win2000下的.
.Jakarta Struts学习之实战演示.
.JAVA相关基础知识(2).
.人物专访: 畅销作家Harold《 Jav.
.EJB应用开发的设计实例深入分析.
.Java应用者与IDE环境.
.Eclipse Forms设计漂亮UI之简介.
.使用Java程序连接各种数据库的方.
.Spring框架下实现基于组的用户权.
.了解Solaris 认证.
.J2EE疑难解决实例.
.使用Collections.
.FreeJava 的使用方法.
.Struts源码研究 - Bean-Message标.

剖析.Net下的数据访问层技术(3)

发表日期:2008-1-5 |



  O/R Mapping
  O/R Mapping的全称是:Object Relational Mapping,主要目的是在传统RDBMS与OO Language之间建映射关系,从而使开发人员彻底脱离数据持久这片剪不断理还乱的苦海。
  
  关于O/R Mapping或者近来比较热门的O/X Mapping(大家可以参考“程序员,2004.01,P86”),可能需要专门的文章进行具体论述,本文的目的主要是对现有方案的优缺点进行简单剖析以及提供一些实践中的参考信息。
  
  相比较J2EE平台,.NET下的O/R Mapping可谓没什么历史,至今还尚未有经过考验的成熟的可用方案。但是,随着各大厂商的重视以及开源项目的如火如荼,.NET O/R Mapping的步伐也开始慢慢跟上,使这块本属于J2EE的领地加入了新的竞争对手(会不会使更多的开发人员投入.NET阵营?J),也让众多疲于在SQL Clause或ADO.NET中往返奔命的DAL开发人员看到了“光明之路”。
  
  接下来,就让我们一起看看在这片比ADO.NET更广阔的土地上有些什么值得探讨的Solution。
  
  Open Source
  开源方面一直与.NET保持一定距离,O/R Mapping更是寥寥无几,但就作者的下载试用和源码分析来看,个人以为如下的两个解决方案还是有一定参考价值的:OPF,OJB。
  
  有关这两个开源项目的简介,大家可以参考“程序员,2004.01,P13”。
  
  OPF的全称是:Object Persistent Framework。
  
  OJB的全称是:ObJect Relational Bridge。
  
  在实现手法上,这两个方案的思路完全不同,具有各自的代表性。
  
  OPF走的路线有点类似于Typed DataSet或Borland ECO(请参考下面的介绍),实现比较简单,提供更多的源码级控制;而OJB的实现则类似于Microsoft ObjectSpaces(请参考下面的介绍),采用了配置文件的方式,相对就比较复杂了。
  
  这两个方案的基本框架如下所示:
  
  OPF:
  
 剖析.Net下的数据访问层技术(3)(图一)

  从图中不难看出:
  
  (1)  Persistent类扮演了DataSet的角色,除了常规的对象数据操作外,还可以设定不同对象间的关系(如主从关系,集合关系等,这一点在Borland ECO所生成的代码中也可略见一二),这也是上文所说“提供更多源码级控制”的原因所在;
  
  (2)  PersistentSqlDataManager则扮演了DataAdapter的角色,通过预先设置的Commands来执行真正的数据库操作;在实际撰写的employee data manager中,开发人员确实需要提供基本的SQL语句,就像在SqlCommond中设置的那样(Borland ECO则更进一步,以OCL代替了SQL);
  
  (3)  ObjectBroker的作用非常重要,它是对象与数据间的桥梁,RegisterPersistent方法建立了这种虚拟(Object)与现实(RDBMS)间的关系;
  
  (4)  在employee business object的声明中,对象属性与数据库字段的对应关系是通过.NET Attribute机制体现的,所以修改起来还是比较方便的,虽然相比配置文件的方式显得不够灵活(请参考OJB的介绍),比如:需要重新编译,开发人员不得不关注数据库字段等。
  
  OJB:
  
剖析.Net下的数据访问层技术(3)(图二)

  从图中不难看出:
  
  (1)  该方案的实现比较复杂,但用户需要实际撰写的代码变少了(只需要编写employee business object),这其中的要害就在于引入了配置文件;同时,由于配置文件的引入,我们在hello world application中也不需要调用类似OPF解决方案(请参考上文的OPF类图)中的RegisterObject方法,所有这一切(甚至包括数据库连接信息),系统都已了如指掌!
  
  (2)  该方案中,SQL命令通过Criteria类被彻底替代,而QueryFacade则充当了Adapter的功能,通过PersistenceBroker这一真正的Command与数据库进行通信;
  
  (3)  无论是repository.XML配置文件,还是Criteria、QueryFacade类,我们都可以在ObjectSpaces(请参考下面的介绍)中找到类似的实现(难道是巧合?),同时,作者个人以为,这种方式也更符合O/R Mapping的精神,减轻了开发人员的负担!
  
  (4)  OJB还有一个非常cool的工具“repositorygen.exe”,可以用来生成repository.xml配置文件(同样的,源码无偿奉上J),这一点,甚至连ObjectSpaces都没能做到(想想那么多字段、属性、关联、映射,简直可以让人发疯)!
上一篇:剖析.Net下的数据访问层技术(2) 人气:412
下一篇:软件设计:色彩化的设计 人气:487
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成