JDBC 与ODBC的区别
一、ODBC(Open DataBase Connectivity : 开放数据库连接)
ODBC 总体结构
应用程序
执行处理并调用odbc函数,提交sql语句并检索结果
Driver Manager
管理应用程序和驱动程序之间的通讯,根据应用程序加载并卸载驱动程序,
处理odbc函数调用,获把它们传送到驱动程序
驱动程序
处理odbc函数调用,把sql语句提交到数据源,并返回结果到应用程序,如有必要,
驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致
数据源
用户要访问的DBMS,以及相关os
Application
|
|
Driver Manager
| | |
| | |
驱动程序 驱动程序 驱动程序
| | |
数据源 数据源 数据源
结合现实的高层开发工作流程如下:
1.数据应用系统首先获得在ODBC数据源管理器中建立的DSN(存储了与数据提供程序连接的详细信息包含数据库位置、数据库类型及相应的ODBC驱动程序等),然后 Driver Manager依赖一种叫做数据库独立的交流(Database Indepedent Communications Technology)的技术与数据源建立联系(其中涉及客户端和服务器端多种Agent对象的问题,详情不叙,可参见下图).
2.Driver Mangaer调用特定ODBC驱动程序将ODBC标准API转化为适用于具体数据库系统的函数调用(数据库特征不同之处也在这里翻译如SQL语法差异等),然后经由客户端的Request Agent发送到数据源.
3.数据源Database Agent处理操作,将结果返回到客户端的Request Agent,再向上经Driver(这里会有翻译和标准化错误码的行为)、Driver Mangaer返回给Application.
需要说明的是定义和操作光标、维护事务、负责任何与访问数据源的必要软件层进行交互(包括与底层网络或文件系统接口的软件)等行为亦由驱动程序完成.
结合ODBC API调用顺序描叙工作流程:初始化(分配环境--->分配连接句柄--->与服务器连接--->分配语句句柄)-------->SQL处理(语句处理和检索部分)-------->终止(释放语句句柄--->与服务器断开--->释放连接句柄--->释放环境).
二、JDBC(Java DataBase Connectivity : Java数据库连接)
JDBC设计很多借鉴于ODBC:
1.JDBC与ODBC都是基于X/Open的SQL调用级接口
2.JDBC很多设计思想沿袭了ODBC,包括许多抽象和SQL CLI实现
3.JDBC的总体结构类似于ODBC,有四个组件:应用程序、驱动程序管理器、驱动程序和数据源,工作原 理亦大体同于ODBC.
1.JDBC保持了ODBC的基本特性,也独立于特定数据库.
2.使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS.连接不同的 DBMS时,各个DBMS之间仅通过不同的URL进行标识.
3.JDBC的DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什 么特性,从而能对特定数据库的特性予以支持
4.JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个 异构的数据库,为异构的数据库之间的互操作奠定基础
Java的驱动解决方案有四种:1.JDBC-ODBC Bridge 2.本机API/集团式Java驱动程序 3.网络协议/全Java 4.本机协议/全Java
JDBC 与ODBC的区别的更多相关文章
- 关于JDBC和ODBC的区别
转载..... JDBC与ODBC都可以实现类似的功能,但JDBC与ODBC的区别是他们的开发架构不同,其实现细节上也有所差异. 谈到JDBC与ODBC的区别,JDBC和ODBC其实都是用来连接数据库 ...
- JDBC与ODBC的区别
JDBC简介JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一访 ...
- JDBC与ODBC的区别与应用
jdbc是使用通过JAVA的数据库驱动直接和数据库相连,而jdbc-odbc连接的是ODBC的数据源,真正与数据库建立连接的是ODBC! 建议使用JDBC直接连接,同时最好使用连接池! JDBC 是 ...
- JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系
ODBC: (Open Database Connectivity,开放数据库互连),它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口).这些API利用SQL来完成其大部分任务 ...
- jdbc和odbc
JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一 ...
- JDBC与ODBC
ODBC(Open Database Connectivity)是一组对数据库访问的标准API,这些API通过SQL来完成大部分任务,而且它本身也支持SQL语言,支持用户发来的SQL.ODBC定义了 ...
- Java系列之JDBC和ODBC之间的差别与联系
JDBC简单介绍 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API,它是Java十三个规范之中的一个.能够为多种关系数据 ...
- JDBC 与 ODBC 区别
一. 二.
- Oracle JDBC:驱动版本区别与区分 [转]
classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别,之间的差异 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle ...
随机推荐
- IBM MQ
一,安装 1,先安装必备MQ\MQ60\Prereqs\IES\Setup.exe 2,再安装MQ\MQParms.exe 二,发送方 刚装好后,默认有一个管理器名,可以删除,自己重新建,以防有不可知 ...
- strcmp的源码实现
微软方法: int __cdecl strcmp (const char *src, const char *dst) { ; while(!(ret = *(unsigned char *)src ...
- Unity3d 如何找到游戏对象并改变其颜色
//游戏对象 private var obj:GameObject; //渲染器 private var render:Renderer; //贴图 private var texture:Textu ...
- Lua基础之Function
概述:1.定义和调用 2.多返回值3.可变参数 原文地址 http://blog.csdn.net/dingkun520wy/article/details/50275387 1.定义和调用 函数,在 ...
- linux驱动系列之s3c2440内存布局
刚开始学习linux在2440上面 linux内核分配标志可以分为三类:行为修饰符.区修饰符.类型. 区修饰符表示从哪儿分配内存,内核把物理内存分为多个区,每个区用于不同的目的. 内存中缓冲区存在的原 ...
- submit和button提交表单的区别
<html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- log4j示例
示例代码:此示例从控制台输入日志,设置了输出等级. # # Log4J Settings for log4j 1.2.x (via jakarta-commons-logging) # # The f ...
- 搭建 Android 开发环境,初试HelloWorld (win7) (上) (转)
搭建Android开发环境主要有以下几步要做: 1.JDK安装 2.Eclipse安装 3.Android SDK安装 4.ADT安装 5.创建AVD 1.JDK(Java Development K ...
- Google chrome的字体设置
http://blog.sina.com.cn/s/blog_a3b863da01016sv3.html 谷歌浏览器(Google chrome)速度很快,很好用.问题是字体显示有时候不对:用英文版的 ...
- CKEditor在线编辑器增加一个自定义插件
CKEditor是一个非常优秀的在线编辑器,它的前身就是FCKEditor,CKEditor据官方说是重写了内核的,但功能和性能比FCKEditor更为强大和优越.记得07年的时候第一次接触FCKEd ...