1、演变历史:

它们是按照这个时间先后的顺序逐步出现的,史前->ODBC->OLEDB->ADO->ADO.Net

2、下面分别介绍一下这几个。

a. 史前的数据访问是什么样子的?

——最初,对数据库的访问是通过本机库来实现的,如SQL SERVER的DBLib和Oracle的OCI(Oracle Call Interface,Oracle调用接口),这样能够快速访问数据库,不涉及其他附加层,只需要编写可直接访问数据库的代码即可。但是,这也意味着开发人员必须使用不同的API来访问不同的数据库系统,而且,如果要改变应用程序的数据库,那么就需要修改应用程序中的所有数据访问相关的代码,来适应不同的数据库。

一句话总结,史前的这种数据访问方式对不同的数据库的通用性还是很低的。

b. ODBC的诞生?

——在20世纪90年代初,Microsoft和其他几家公司都开发了ODBC(Open DataBase Connectivity,开放数据库连接),它提供了一个公共的数据访问层,可用来访问几乎所有的RDBMS(Relational DataBase Management System,关系型数据库管理系统)。ODBC使用RDBMS专用的驱动程序访问数据源,而该驱动程序由ODBC Driver Manager加载和管理。它还提供诸如连接池等特性,以重用已有连接,而不是在关闭连接的时候释放连接。

一句话总结,ODBC是以微软为首的行业参与者设计的,是最早的通用数据访问技术,通过使用ODBC驱动程序可以访问各种关系型数据库

c. OLEDB的诞生?

——是一次数据访问技术新的变革,是Microsoft的UDA(Universal Data Access,通用数据访问)策略。UDA的实质是数据可以存储于多种地方,如电子邮件,Excel电子制表软件、Web页面以及传统的数据库中。这样可以通过一个简单一致的数据访问技术,就可以访问这些数据。而OLEDB是实现这种策略的基础。OLEDB是面向调用的API,是用于数据访问的一系列COM接口。

一句话总结,OLE DB的革新, 是它除了能处理关系型数据库, 还能处理非关系型数据了, 如Excel, 这就比ODBC更加进步了.

d.ADO的诞生?

——ADO(ActiveX Data Objects)是对OLEDB的进一步封装,ADO(它的底层也是调用的OLEDB)是面向对象的API,请看下图:

一句话总结,ADO就是对OLEDB的使用的简化,不需要去学习几百个API的使用,访问数据时,只需要去操纵几个简单对象的属性和方法。

   

e. ADO.Net的诞生?

——ADO.NET (ActiveX Data Objects for .NET) 。

  

一句话总结,ADO.NET是改进的ADO数据访问模型,用于开发可扩展应用程序。它是专门为可伸缩性、无状态和XML核心的web而设计的。

结束。

ADO.Net的发展史的更多相关文章

  1. ADO.NET对象的详解

    1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...

  2. WebForm获取GET或者POST参数到实体的转换,ADO.NET数据集自动转换实体

    最近在修改维护以前的webform项目(维护别人开发的.....)整个aspx没有用到任何的控件,这个我也比较喜欢不用控件所以在提交信息的时候需要自己手动的去Request.QueryString[] ...

  3. ADO.NET编程之美----数据访问方式(面向连接与面向无连接)

    最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...

  4. ADO.NET一小记-select top 参数问题

    异常处理汇总-后端系列 http://www.cnblogs.com/dunitian/p/4523006.html 最近使用ADO.NET的时候,发现select top @count xxxx 不 ...

  5. .NET基础拾遗(6)ADO.NET与数据库开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...

  6. 升讯威ADO.NET增强组件(源码):送给喜欢原生ADO.NET的你

    目前我们所接触到的许多项目开发,大多数都应用了 ORM 技术来实现与数据库的交互,ORM 虽然有诸多好处,但是在实际工作中,特别是在大型项目开发中,容易发现 ORM 存在一些缺点,在复杂场景下,反而容 ...

  7. ADO.NET Entity Framework 在哪些场景下使用?

    在知乎回答了下,顺手转回来. Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的 ...

  8. ADO.NET 核心对象简介

    ADO.NET是.NET中一组用于和数据源进行交互的面向对象类库,提供了数据访问的高层接口. ADO.NOT类库在System.Data命名空间内,根据我们访问的不同数据库选择命名空间,System. ...

  9. ODBC、OLE DB、 ADO的区别

    转自:http://blog.csdn.net/yinjingjing198808/article/details/7665577 一.ODBC ODBC的由来 1992年Microsoft和Syba ...

随机推荐

  1. linux CentOS

    CentOS中由一般用户切换为root用户 1.打开终端,提示符为“$”,表明该用户为普通用户,此时,直接输su,回车,输入root密码,回车,就可以切换到root用户下,此时的提示符变为“#”. 注 ...

  2. c++11 强类型枚举 enum class

    在标准C++中,枚举类型不是类型安全的.枚举类型被视为整数,这使得两种不同的枚举类型之间可以进行比较.C++03 唯一提供的安全机制是一个整数或一个枚举型值不能隐式转换到另一个枚举别型. 此外,枚举所 ...

  3. LG1081 开车旅行

    题意 城市\(i\)的海拔高度为\(H_i\)(各不相同).定义距离为海拔差的绝对值 小\(A\)和小\(B\)轮流开车.从\(S\)起,一直向东行驶. 小\(A\)会选择第二近的城市作为目的地.小\ ...

  4. webpack摸索笔记

    上一个链接,入门webpack看这篇文章最好:https://segmentfault.com/a/1190000006178770 1.先安装好node 2.建个项目文件 3,.window+r,打 ...

  5. shiro使用redis作为缓存,出现要清除缓存时报错 java.lang.Exception: Failed to deserialize at org.crazycake.shiro.SerializeUtils.deserialize(SerializeUtils.java:41) ~[shiro-redis-2.4.2.1-RELEASE.jar:na]

    shiro使用redis作为缓存,出现要清除缓存时报错 java.lang.Exception: Failed to deserialize at org.crazycake.shiro.Serial ...

  6. 获取UILabel的numberOfLine

    获取UILabel的numberOfLine CGFloat textH = [self.label.text boundingRectWithSize:CGSizeMake(width, MAXFL ...

  7. js中类似null==flase的比较图集

    以上是比较全的图集了,大家可以自行测试.

  8. ceph的正常卸载与非正常卸载

    一.ceph的正常卸载与非正常卸载 一.正常卸载(通过ceph-deploy卸载) 环境已安装ceph-deploy 1.查看ceph-deploy的帮助信息 [cephde@controller03 ...

  9. 【Vagrant】-NO.130.Vagrant.2 -【Error:the filesystem "vboxsf" is not available】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  10. ESP8266 RTOS SDK编译环境搭建

    前提条件 1. linux操作系统或者windows下的linux虚拟机或者OS X操作系统 2. 联网 下载 * [Mac](https://dl.espressif.com/dl/xtensa-l ...