深入数据库通用的连接方式详解
发布时间:2024-01-26 02:20:10
每个数据的访问都用自己的通信协议,包括还有不同的接口调用,参数传递。在同一个程序里要使用不同数据库里的信息,按照正常的情况来说,那就要写不同的数据库连接的方法,就像在程序里写了多个精简版的 数据库 客户端。这样的编程方式肯定会让人不好难受,所以就期望能够有一种统一的访问数据库的方式,大家都用这一种方式去连接数据库,那么将减少很多痛苦。
话说微软是第一个给大家带来曙光的人,推出了ODBC的概念,从此所有的程序都不用自己写数据库连接程序了,从此跨入了解放时代。ODBC是一组基于C语言的API,它能兼容不同的数据库,然后提供统一的访问接口,这样就为大家节省出了YY的时间。
在ODBC推出后多年,有出了一个新概念OLE DB。这个是ODBC的升级版,因为一切都开始面向对象了,所以这个自然就是以对象方式来实现的。而且在性能方面也有了一些提高,自此OLE DB成为微软的新宠。
ODBC、OLE DB都是底层的数据库访问接口,使用起来不是很方便、容易,大家YY的时间又被占用的,为此微软决定再次解放大家、所以就出来了ADO的概念。很显然这是一个对象,就是对OLE DB、ODBC的高层封装,把大家经常要做的数据库操作都给直接提供出来,大家的YY时间再次被解救回来了。
不过在这期间Sun公司也没闲着,为了更大层次的解救JAVA程序猿们的YY时间,就单独写了一套专门用于JAVA的数据库访问接口JDBC,听名字就知道是山寨创意了。换汤不换药,唯一的好处就是java代码里调用会更舒服,自己家养的东西肯定用起来更顺手。
当然sun除了山寨创意外,还保留了对ODBC的调用接口【JDBC-ODBC桥】,以防不时之需;这样万一有一天除了一个新的东西只有ODBC支持,JDBC不支持。这时还不至于太有压力。当然ODBC的支持也是目前最广的,某些非主流的数据库文件的访问接口也都支持,所以还是留一手的好。
这样的话,数据库访问方式就开始明朗了。见下:
这样看来,用途最广、最底层的就是ODBC了。基本所有其它的都会可能调用它,JDBC、OLE DB是一个等级的;一个是sun的,一个是微软的;ADO不是直接访问的程序,只是一个访问快速通道而已。
注:所有的链接方式都需要本机有相应的驱动,而驱动是和具体的数据库是对应的。这样就会有3类驱动类型,每类访问N种数据库都要N个驱动。


猜你喜欢
- 以下为在asp中增加一个sql server2000用户函数,并为建立一个数据库,给他dbo的权限。注意:sql server的验证方式不要
- ASCII码转换为int:ord('A') 65int转为ASCII码:chr(65) 'A'题目内容:实现
- PHP 向它运行的任何脚本提供了大量的预定义常量。魔术常量准确来说并不能算是常量,常量我们在之前的文章中我们介绍到,常量被定义之后是不能被改
- TIMESTAMPDIFF函数用于计算两个日期的时间差语法结构TIMESTAMPDIFF(unit,datetime_expr1,datet
- chatGPT已经爆火一段时间了,我想大多数的开发者都在默默的在开发和测试当中,可能也是因为这个原因所以现在很难找到关于开发中遇到的一些坑或
- ASP页面延迟的两个简单方法 asp延时第一种 代码如下:<% Response.Buffer = Tr
- 其实所有的死锁最深层的原因就是一个:资源竞争。表现一:一个用户A 访问表A(锁住了表A),然后又访问表B
- 前言最近遇到了一个问题:我的server和client不是在一个时区,server时区是EDT,即美国东部时区,client,就是我自己的电
- 本文实例为大家分享了python提取英语pdf内容并翻译的具体代码,供大家参考,具体内容如下前期准备工作:翻译接口: 调用的是百度翻译的ap
- 以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些。如果还有不好的地方,欢
- 这句代码在IE9之前曾被称为世界上最短的IE判定代码。代码虽短但确包含了不少javascript基础知识在里面。var ie&nb
- 本文简单介绍如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的,
- 引言:在机器学习还有深度学习中,经常会用到这几个函数,为了便于以后熟练使用,现在对这几个函数进行总结。(一)np.random.rand()
- 首先忠心感谢凌宇5942给我的帮助!在他的启迪下我发现了另一种实现flash透明背景的办法,愿与大家共同探讨:凌宇5942告知的解决办法:在
- 上一篇文章讲解了如何实现马丁策略,但没有探索其泛化能力,所以这次来尝试回测3000只股票来查看盈利比例。批量爬取股票数据这里爬取数据继续使用
- 你在使用pandas处理DataFrame中是否遇到过如下这类问题?我们需要删除某一列所有元素中含有固定字符元素所在的行,比如下面的例子:&
- 本文实例讲述了Python tkinter事件高级用法。分享给大家供大家参考,具体如下:先来看看运行效果:完整实例代码:# -*- codi
- 前言删除数据表的时候,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无法挽回的后果。mys
- 双向RNN:bidirectional_dynamic_rnn()函数的使用详解先说下为什么要使用到双向RNN,在读一篇文章的时候,上文提到
- Office家族成员中,人们对于Access 2000的了解,往往只局限在它的操作界面中,对于数据库管理的功能仍只是停留在建立表、数据输入、