什么是JDBC? 

    JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可訪问各类关系数据库。JDBC也是java核心类库的一部分。

JDBC的最大特点是它独立于详细的关系数据库。与ODBC (Open Database Connectivity)类似, JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connections), SQL语句(SQL statements), 结果集(result sets)以及其他的数据库对象, 使得Java程序能方便地与数据库交互并处理所得的结果。使用JDBC, 全部Java程序(包括Java applications , applets和servlet)都能通过SQL语句或存储在数据库中的过程(stored procedures)来存取数据库。

    要通过JDBC来存取某一特定的数据库。必须有对应的JDBC driver。它往往是由生产数据库的厂家提供,是连接JDBC API与详细数据库之间的桥梁。

通常。Java程序首先使用JDBC API来与JDBC Driver Manager交互,由JDBC Driver Manager加载指定的JDBC drivers, 以后就能够通过JDBC API来存取数据库。

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分。它建立了一组规范,并提供了一组对数据库訪问的标准API(应用程序编程接口)。这些API利用SQL来完毕其大部分任务。ODBC本身也提供了对SQL语言的支持,用户能够直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖不论什么DBMS,不直接与DBMS打交道,全部的数据库操作由对应的DBMS的ODBC驱动程序完毕。也就是说。不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行訪问。

由此可见。ODBC的最大长处是能以统一的方式处理全部的数据库。 

一个完整的ODBC由下列几个部件组成: 

应用程序(Application)。

ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内。其主要任务是管理安装的ODBC驱动程序和管理数据源。 

驱动程序管理器(Driver Manager)。

驱动程序管理器包括在ODBC32.DLL中。对用户是透明的。

其任务是管理ODBC驱动程序,是ODBC中最重要的部件。 

ODBC API。

ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。 

数据源。数据源包括了数据库位置和数据库类型等信息。实际上是一种数据连接的抽象。

各部件之间的关系如图下图所看到的: 

应用程序要訪问一个数据库,首先必须用ODBC管理器注冊一个数据源。管理器依据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与详细数据库的联系。这样,仅仅要应用程序将数据源名提供给ODBC,ODBC就能建立起与对应数据库的连接。

在ODBC中,ODBC API不能直接訪问数据库。必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完对应的操作后。将结果通过驱动程序管理器返回给应用程序。 

在訪问ODBC数据源时须要ODBC驱动程序的支持。用Visual C++ 5.0安装程序能够安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,VC5.0仅仅会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.假设用户须要安装别的驱动程序,则须要又一次执行VC 5.0的安装程序并选择所需的驱动程序。

jdbc与odbc的差别,感悟,学习。。。的更多相关文章

  1. Java系列之JDBC和ODBC之间的差别与联系

    JDBC简单介绍 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API,它是Java十三个规范之中的一个.能够为多种关系数据 ...

  2. JDBC与ODBC

     ODBC(Open Database Connectivity)是一组对数据库访问的标准API,这些API通过SQL来完成大部分任务,而且它本身也支持SQL语言,支持用户发来的SQL.ODBC定义了 ...

  3. 关于JDBC和ODBC的区别

    转载..... JDBC与ODBC都可以实现类似的功能,但JDBC与ODBC的区别是他们的开发架构不同,其实现细节上也有所差异. 谈到JDBC与ODBC的区别,JDBC和ODBC其实都是用来连接数据库 ...

  4. JDBC 与ODBC的区别

    一.ODBC(Open   DataBase   Connectivity   :  开放数据库连接)         ODBC  总体结构  应用程序    执行处理并调用odbc函数,提交sql语 ...

  5. jdbc和odbc

    JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一 ...

  6. JDBC与ODBC的区别

    JDBC简介JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一访 ...

  7. JDBC与ODBC的区别与应用

    jdbc是使用通过JAVA的数据库驱动直接和数据库相连,而jdbc-odbc连接的是ODBC的数据源,真正与数据库建立连接的是ODBC! 建议使用JDBC直接连接,同时最好使用连接池! JDBC 是 ...

  8. 大约Java有点感悟---开发商根本上感悟学习

    这些年来一直从事大C.C++,有些局部底.一直想知道更多关于顶级什么. 所以,在工作之余.阅读更多Java哪些方面,还使用了一些建筑结构的一些简单的程序,在这里我想简单谈谈自己的一点感悟. 1.Jav ...

  9. JDBC(MySQL)一周学习总结(一)

    一周过去了,我在这分享一下这一周来学习 JDBC 的知识,同时也希望可以帮到别人! 首先我们从获取 JDBC 连接开始 Driver(每个驱动程序类必须实现的接口) 获取数据库连接需要配置数据库连接信 ...

随机推荐

  1. Template Method 模板方法 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. 为什么谷歌的JSON响应以while(1);开头?

    问题(QUESTION): 我有个问题一直很好奇就是:为什么谷歌的JSON响应以while(1);开头?举个例子,当把谷歌日历打开和关掉时,会返回这样的JSON对象: while(1);[['u',[ ...

  3. android 时间控件概述

    android的自带时间选择控件,是一个让用户既能输入的又能选择的样子.这本来没有太大的问题了. 但是,坑爹的android是开源的.自带的时间控件在某些机型上,早已经是面目全非了,在用以一个普通用户 ...

  4. SVN-服务器变更,代码变更

    1.使用<SVN-如何删除 SVN 文件夹下面的小图标>文章中的方法将svn的关联去掉 2.使用<SVN-服务器搭建>文章中visual studio添加项目到svn服务器的步 ...

  5. 2015 HDU 多校联赛 5363 Key Set

    2015 HDU 多校联赛 5363 Key Set 题目: http://acm.hdu.edu.cn/showproblem.php? pid=5363 依据前面给出的样例,得出求解公式 fn = ...

  6. Linux:编译动态库时遇到的错误relocation R_X86_64_32 against `a local symbol'

    编译动态库时遇到如下错误: ... ... relocation R_X86_64_32 against `a local symbol' can not be used when making a ...

  7. 火狐浏览器Firefox不支持alt怎么

    因为HTML代码的解析不同,需要把标签文字"alt"换成"title",就可以在FireFox中正常显示了. 如下所示,IE对于alt和title均可以支持 但 ...

  8. 字符串的公共前缀对Mysql B+树查询影响回溯分析

        年前项目组接微信公众号. 上线之后,跟微信相关的用cid列的查询会话的SQL变慢了几十倍!思考这个问题思考了非常久.从出现以来一直是我心头的一个结.cid这一列是建了索引的,普通的cid列更新 ...

  9. 运行top时,会报unknown terminal type错误

    问题: 在板子上执行top时总是提示'vt102': unknown terminal type. 执行了export TERM=xterm,还是不管用 解决: 执行export,方向没有设置TERM ...

  10. 多mysql实例下开发需要注意主从同步延迟

    今天晚上服务器上线测试,遇到了一个问题! 往数据库写了一条数据之后,再读取该记录,居然读不出来,报空指针.十分费解,喊来开发组长定位问题.他的解释是:写操作用的是主库,而读操作用的是从库.在写库写完之 ...