博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORM框架
阅读量:5356 次
发布时间:2019-06-15

本文共 1149 字,大约阅读时间需要 3 分钟。

概念

对象-关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象的 发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法, 是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
 
面向对象是从软件工程基本原则(如 、 、 )的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
让我们从O/R开始。字母O起源于 对象(OBJECT),而R则来自于 关系(RELATIONAL)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。
当你开发一个应用程序的时候(不使用 ),你可能会写不少 的代码,用来从数据库保存,删除,读取对象信息,等等。你在 中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。
如果打开你最近的程序,看看DAL代码,你肯定会看到很多近似的通用的模式。我们以保存对象的方法为例,你传入一个对象,为SQLCOMMAND对象添加SQLPARAMETER,把所有属性和对象对应,设置SQLCOMMAND的COMMANDTEXT属性为存储过程,然后运行SQLCOMMAND。对于每个对象都要重复的写这些代码。
除此之外,还有更好的办法吗?有,引入一个O/R MAPPING。实质上,一个O/R MAPPING会为你生成DAL。与其自己写DAL代码,不如用O/R MAPPING。你用O/R MAPPING保存,删除,读取对象,O/R MAPPING负责生成SQL,你只需要关心对象就好。
对象关系映射成功运用在不同的面向对象持久层产品中,如:TORQUE,OJB,HIBERNATE,TOPLINK,CASTOR JDO, TJDO 等。
一般的ORM包括以下四部分:
一个对持久类对象进行CRUD操作的API;
一个语言或API用来规定与类和类属性相关的查询;
一个规定MAPPING  的工具;
一种技术可以让ORM的实现同事务对象一起进行 CHECKING, LAZY ASSOCIATION FETCHING以及其他的优化操作。

转载于:https://www.cnblogs.com/qtiger/p/5798918.html

你可能感兴趣的文章
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
织梦文章内容提取第一张或者多张图片输出
查看>>
C#用正则表达式 获取网页源代码标签的属性或值
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
WCF(一) 简单的认知
查看>>
[MFC][DShow]简单例子
查看>>
降序排列
查看>>
Luogu P1141 01迷宫【搜索/dfs】By cellur925
查看>>
js onclick事件传参
查看>>
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>
Mybatis输入类型和结果类型
查看>>
Linux常用命令(五)
查看>>
Linux常用命令(四)
查看>>
Linux常用命令(六)
查看>>
Linux常用命令(六)
查看>>
Linux常用命令(八)
查看>>