- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对象关系映射在.NET框架下应用研究
对象关系映射在.NET框架下应用研究
(江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013)
摘 要:基于面向对象的模型与基于关系数学理论之间的阻抗不匹配使得处理数据时无法完整体现对象的特性。对象关系映射提供了沟通对象与关系数据库的桥梁。分析比较了实体类映射到数据表时的策略,重点研究了NHibernate对象关系映射框架的应用与优势。??
关键词:面向对象; 关系数据库; 对象关系映射; NHibernate??
中图法分类号:TP311文献标识码:A
文章编号:1001 ?B3695(2006)08 ?B0058 ?B03
??
Research and Application of Object/Relational Mapping in .NET Framework
??
SUN Dong hai, SONG Shun lin??
(School of Computer Science Telecommunications, Jiangsu University, Zhenjiang Jiangsu 212013, China)
??Abstract:The impedance mismatch between paradigms based on object oriented theory and relational theory make it impossible to reflect the characteristic of object. Object/Relational Mapping provides a bridge between them. The strategies of mapping entity classes to tables are analyzed and compared. The application and advantage of NHibernate framework are especially introduced.??
Key words:Object Oriented(OO); Relational Database; Object/Relational Mapping; NHibernate
如今大多数编程语言是基于面向对象的模型,该模型很好地抽象了真实世界问题域,对现实数据实现了易于理解的自然描述。对于实际应用中需要处理的数据,现在的方法多数是采用关系型数据库。但是面向对象的模型遵循的一些软件工程原理如封装、关联、聚合、继承、多态等与关系数据库遵循的关系数学理论产生的不匹配[1]使得我们在持久化对象过程中遇到了许多困难。在面向对象的开发中,数据访问层最基本的数据库操作包括插入对象,删除对象,更新对象和查询对象。几乎所有的项目开发均需要实现这些原子操作,而这些操作在项目开发中都很类似。显然在每个项目中这种重复而具备相同模式的代码是一种明显的浪费。这就催生了Object/Relational Mapping (O/R Mapping)技术的产生。
1 O/R Mapping框架概述
使用面向对象的语言访问关系数据库是最简单,也是最糟糕的办法,就是在业务类中直接编写SQL语句。这样写的好处在于代码的编写效率高,对于非常小型的程序或原型,采用这种方法也未尝不可。但是缺点是业务类与关系数据库结构直接耦合,这意味着即使是很小的改变(诸如重命名列或是移植到另一种数据库),都会造成系统源码级的修改[2]。??
比这种方法稍进步些的方法是:在业务层与数据库之间增加数据访问层,封装与数据库相关的各种操作。如此一来,业务类便脱离了SQL语句,系统的整体结构也更为清晰。这也是当前软件开发过程中的主流方法。但是这种方法仍然不能使面向对象的开发者完全摆脱数据库的束缚,数据库发生变动之后,仍然需要改写和重新编译数据类。??
本文将讨论的方法是:在业务层与数据库之间构建一个持久层,使得业务类需要的数据透明地在数据库中进行存取,面向对象的开发者似乎根本感觉不到数据库的存在,只要将需要存取的数据通知持久层,其他的事情都由持久层的内部机制来实现。如果数据库发生某种变化,持久层则负责对业务层屏蔽这些变化,为业务类提供高度统一的数据访问模式。O/R Mapping框架工作在业务层和持久机制(本文限定于关系数据库)之间,它为业务逻辑包装了数据类的持久化实现,保护应用开发者不受底层变化的影响[3]。使得我们可以在业务层完全专注于问题域,而无需理会繁杂的数据库操作问题,只需发出简单的Save,Retrieve,Delete等命令,O/R Mapping框架便
您可能关注的文档
最近下载
- 第一单元《做学习的主人》大单元整体教学评一体化教学设计 2025道德与法治三年级上册.docx
- 入党志愿书空白表格_1831893502精品.doc VIP
- 三一汽车起重机STC1000C7-1_产品手册用户使用说明书技术参数图解图示电子版.pdf VIP
- 2025-2026学年高二物理上学期第一次月考卷(真题含答案解析).docx VIP
- 高中语文专题一沁园春长沙学案苏教版.doc VIP
- 《中国老年骨质疏松症诊疗指南(2024)》解读-.pptx VIP
- 门式钢架房屋技术规程2002.pdf
- 《2校园的树木我修剪》(教案)人民版劳动技术七年级上册.docx
- 报价单模板模板.docx VIP
- 意外事故调查表(标准范本).pdf VIP
文档评论(0)