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挂载系统ios文件与gcc安装

    挂载方法: 1.将iso文件拷贝到某一目录下,(/test) 2.建立挂载点文件夹:mkdir  /mnt/iso1 3.进入 mount –o loop  /test/**.iso  /mnt/is ...

  2. eclipse启动报错

    我的是win64位系统,eclipse,jdk1.8    64位 原因:网上说是jdk和eclipse的版本不一致导致的(32位jdk64位eclipse,或者相反): 解决过程: 安装了jdk1. ...

  3. java详细剖析

    1·类型加载主动初始化和被动初始化两种,通过访问静态变量或者给静态变量赋值都是可以使类初始化,如果有继承关系,所依赖的父类都会被动初始化. 2·如果在类的静态变量中添加final关键字,那这个变量就会 ...

  4. laravel 控制器类DB类操作

    例子:TrGo表(trgo_chip): laravel框架建立:TrGoModel <?php namespace TrChaos\Model; class TrGoModel extends ...

  5. 缓存机制 ehcache、redis

    本文主要记录ehcache和redis实现缓存(redis版本号:5.0.3) 一.ehcache 1.ehcache:用来管理Java中缓存的轻量级工具,其核心通过CacheManager使用,一般 ...

  6. 玩转Vuejs--数组监听

    Vue中对数据的监听主要是依靠Object.defineProperty来实现的,这种实现主要是针对key/value形式的对象,对数组中值的变化是无能为力的,那么该如何对数组中的数据进行监听呢,下面 ...

  7. Python模块安装与读取Excel

    今天.想用Python读取一下Excel中的数据,从网上查找了一个样例,是要安装相关的模块:        1:到python官网下载http://pypi.python.org/pypi/xlrd模 ...

  8. DB_ObjectName_Define

    TABLE:Module_Object_Action eg:Finance_ProfitAdjust_Apply

  9. 杂记:解决Android扫描BLE设备名称不刷新问题

    背景 个人开发过一种BLE设备有这样一种需求:当设备处于状态A时,广播设备名称A:处于状态B时,广播设备名称B. 问题 我们发现,当Android在进行Ble扫描的时候,扫描回调函数onScanRes ...

  10. MySQL InnoDB Online DDL学习

    MySQL Online DDL这个新特性是在MySQL5.6.7开始支持的,更早期版本的MySQL进行DDL对于DBA来说是非常痛苦的.现在主流版本都集中在5.6与5.7,为了更好的理解Online ...