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. direction: rtl;

    这个属性,有点无语,费了点时间. <style type="text/css"> .hao {direction: rtl;}</style> <se ...

  2. django的闪现和增、删、改、查

    使用 messages 闪现在views.py中导入 from django.contrib import messages 在html中 {% if messages %} {% for mess ...

  3. Spring boot +mybatis 连接mysql数据库,获取JDBC失败,服务器时区价值”Oйu±e×¼e±¼的识别或代表多个时区

    报出的错误 Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connec ...

  4. 包的初识和进阶&异常处理

    包 包是一种通过使用‘.模块名’来组织python模块名称空间的方式. 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警 ...

  5. oracle单字段拆分成多行

    已上图为例 先以逗号分隔拆分 拆分函数: CREATE OR REPLACE FUNCTION SPLIT(P_STRING VARCHAR2, P_SEP VARCHAR2 := ',') RETU ...

  6. DAX/PowerBI系列 - 玩转阿里云 Alicloud Pricing

    DAX/PowerBI系列 - 玩转 阿里云主机 Ali Cloud ECS 难度: ★★☆☆☆(1星) 适用范围: ★★★☆☆(3星) 欢迎交流与骚扰 这是啥: 双十一就到了,码农门,程序猿们有没有 ...

  7. Docker入门详解(转载)

    来源 http://dockone.io http://dockone.io/article/6051 Docker是世界领先的软件容器平台,所以想要搞懂Docker的概念我们必须先从容器开始说起. ...

  8. ORACLE 数据库管理

    [故障处理]ORA-12162: TNS:net service name is incorrectly specified 本文将给大家阐述一个因未设置系统环境变量ORACLE_SID导致ORA-1 ...

  9. 平衡树-Splay

    #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #def ...

  10. HBase指定大量列集合的场景下并发拉取数据时卡住的问题排查

    最近遇到一例,HBase 指定大量列集合的场景下,并发拉取数据,应用卡住不响应的情形.记录一下. 问题背景 退款导出中,为了获取商品规格编码,需要从 HBase 表 T 里拉取对应的数据. T 对商品 ...