分享
 
 
 

ORM框架的设计

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

(开头先从网上抄些ORM的介绍)

什么是ORM?

ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射。ORM也可理解是一种规范,具体的ORM框架可作为应用程序和数据库的桥梁。这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

为什么需要ORM

面向对象的程序设计语言,代表了目前程序设计语言的主流和趋势,其具备非常多的优势,比如:

1、 面向对象的建模、操作。

2、 多态、继承。

3、 摒弃难以理解的过程。

4、 简单易用,易理解性。

但数据库的发展并未与程序设计语言同步,而且,关系数据库系统的某些优势,也是面向对象的语言目前无法解决的。比如:

1、 大量数据操作查找、排序。

2、 集合数据连接操作、映射。

3、 数据库访问的并发、事务。

4、 数据库的约束、隔离。

面对这种面向对象语言与关系数据库系统并存的局面,采用ORM就变成一种必然。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

结束

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ORM的核心目的?

是让我们不在关心数据库,只关心我们对象、集合这所有面向对象的知识点

如何自己动手设计一个ORM框架?

一共包含两个部分:

第一个,映射部分(提供可以让用户配置的xml文件)

第二个,框架核心部分(提供 API 供用户使用)

第一部分

映射部分,这一部分就称为ORM。负责对象与数据库表之间的映射,这一部分又分为三个部分。

第1部分,实体部分(Object)

第2部分,数据库部分(关系型数据库 RelationShip)

第3部分,映射部分(Mapping)

上图

那它们之间怎么去协作呢?

Mapping 部分去访问 Object 部分和 RelationShip 部分,然后完成它们之间的映射

怎么映射?

通过Mapping操作,通过xml文件映射对应的字段和属性。

第二部分

框架的核心部分,就是你接收到一个集合或者对象的操作

在经过你的核心类,这里面要做什么操作呢?

第一步,核心类根据你的映射规则去解析 XML 文件,匹配对象对应的表,对象属性对应表的列。

第二步,核心类根据对象的操作(增删改查)生成对应的 sql 语句。

第三步,核心类通过 ADO.NET 访问数据库,执行 Sql 语句。

第四步,返回结果。(如果是查询操作的话,则通过核心类转换成对应的对象或者集合再返回结果)

根据现在有的类,比如说你现在有 User 对象,而 User 对象对应一张 User 表,这时你发现是添加操作,就在核心类中构建 insert 语句,那么 insert 语句 insert 哪张表呢?根据对象和表之间映射关系取到对应的表,Values 哪些列的值呢?这时就从这个对象的属性中去拿,这个属性对应那个列,依次拿出,在通过核心类完成一条 sql 语句,通过核心类完成这么一个转换。最终这条 sql 语句通过我们的框架去请求一个具体的数据库完成操作。如何去请求?这里我们可以通过 ADO.NET 直接访问数据库,最后返回结果。

~~~~~~~~~~~~~~~~~~~~~~~~~~上图~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第一步,核心类要根据你的映射规则去解析 XML 文件,匹配对象对应的表,对象属性对应表的列。

第二步,核心类根据对象的操作(增删改查)生成对应的 sql 语句。

第三步,核心类通过 ADO.NET 访问数据库,执行 Sql 语句。

1

第四步,返回结果。(如果是查询操作的话,则通过核心类转换成对应的对象或者集合再返回结果)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有