ODBC和JDBC的区别

1.ODBC
(1).ODBC的概念
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的最大优点是能以统一的方式处理所有的数据库
(2).ODBC的结构

        1.应用程序(Application)。

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

  3.驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

   4.ODBC API。

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

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


应用程序要访问一个数据库,首先必须用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的安装程序并选择所需的驱动程序。

注意:顺便在此说一下,微软现在推行的是ADO访问数据库,至于ADO等下次说到VC++的时候再说吧
2.JDBC
(1).概念
JDBC是执行SQL语句的Java API。JDBC本身是一个产品的商标名,但它也可被看作为"Ja
va Database Connecivity(Java数据库连接)"。它由一组用Java语言编写的类与接口组成。
JDBC已成为一种供工具/数据库开发者使用的标准API,用户可以用纯Java API来编写数据库
应用。
    使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。换言之,用户不必为访问
Sybase数据库写一个程序,又为访问Oracle数据库写另一个程序。你可以用JDBC API写出唯
一的程序,它能够将SQL语句发送到相应的任何一种数据库。Java与JDBC的结合,使程序员可
以只写一次数据库应用软件后,就能在各种数据库系统上运行。由于Java语言具有健壮性、
安全、易使用、易理解和自动下载到网络等优点,因此,它是数据库应用的一个极好的基础语
言。现在需要找到一种能使Java应用与各种不同数据库对话的方式,而JDBC正是实现这种对
话的一种机制。
    JDBC扩充了Java的应用范围。例如,用Java与JDBC API可以发布一种包含远程数据库信
息的Applet的Web页面。企业使用JDBC可以把它的所有雇员信息通过Intranet连接到一个或
多个内部数据库里。毫无疑问,随着Java程序员的不断增加,对Java的数据库的访问需求会越
来越迫切。MIS管理员希望Java与JDBC结合,因为这有助于更容易、更经济地发布企业信息。
商界可以不断地使用已安装的数据库,方便地存取信息,而不必顾及这些数据库是在何种DBM
S系统下存储的。它有助于缩短新应用的开发时间,并可大大简化数据库的安装与版本控制。
一旦程序员编写或更新了应用,并把它放入服务器之后,那么每个人都可以获得这个最新版本
。在商业销售信息服务领域,Java与JDBC则可以更好地向外界客户提供最新信息
(2).结构

(3).功能与特点

功能:

    ·建立与数据库的连接。
    ·发送SQL语句。
    ·处理结果

特点:

   JDBC是低级的API与高级API的基础
    JDBC是一种"低级"的接口,因为它直接调用SQL命令,但它又可作以为构造高级接口与工
具的基础。高级接口是"用户友善的"、更易理解和更为方便的API,由后台将它翻译成如JDB
C这样的低级接口。有两种基于JDBC的高级API正处在开发之中:
    一种是嵌入SQL的Java。JDBC要求把SQL语句作为字符串传递给Java方法。嵌入SQL预处
理程序,可让程序员把SQL与Java直接混合使用。例如,在SQL语句中可用Java变量接收或提供
SQL值。嵌入SQL预处理程序,把这种混合的Java/SQL翻译成带JDBC调用的Java。
    另一种是把关系数据库表直接映射成Java类。在"对象/关系"的映射中,表中的每一行变
成类的一个实例,每一列的值对应于该实例的一个属性。然后程序员可直接操作Java对象,并
自动生成取、存数据的SQL调用。另外它还提供了更高级的映射,例如在Java类中把多个表的
行结合起来

 

3.JDBC与ODBC

JDBC与ODBC及其它API的比较
    目前,Microsoft的ODBC API是访问关系型数据库中应用最广的编程接口,它几乎能将所
有平台的所有数据库连接起来。现在的问题是可否通过Java来使用ODBC呢?回答是肯定的,但
最好的做法是在JDBC帮助下采用JDBC-ODBC桥接方式实现。需要JDBC的理由如下:
    (1)Java不能直接使用ODBC。因为ODBC使用C语言接口,如果让Java来调用本机C代码的话
,那么会在安全、属性、健壮性、应用的可移植性等方面带来困难。
    (2)不希望把ODBC C API逐字地翻译成Java API。例如,ODBC使用了大量的易于出错的指
针,而Java取消了这种不安全的指针。现在通过JDBC,把ODBC翻译成具有Java风格的面向对象
的接口。
    (3)ODBC难以学习。ODBC把简单功能与高级功能混杂在一起,即便是简单的查询也会带来
复杂的任选项。而JDBC的设计使得简单的事情用简单的做法,仅在必要时才让用户使用高级
功能。
    (4)JDBC的Java API提供"纯Java"的解决办法。当使用ODBC时,ODBC驱动器管理程序与驱
动器必须手工地装入到每架客户机上。而JDBC驱动器全部是用Java编写的,JDBC代码则在所
有Java平台(从网络计算机到主机)上都可自动安装,并且是可移植的和安全的。
    总之,JDBC API是一种基于SQL的抽象与概念的Java接口,它是基于ODBC的。熟悉ODBC的
程序员很容易学习JDBC,JDBC保留了ODBC的基本设计功能。而且两种接口都是基于X/OpenSQ
L CLI(Call Level Interface)。最大的区别是JDBC保持了Java自身的风格与优点。最近,M
icrosoft引入了ODBC以外的新的API,包括RDO、ADO和OLE DB。其设计策略在许多方面与JDB
C类似,也是一种基于ODBC类的面向对象的数据库接口

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Cpp_Java_Man/archive/2006/05/15/740170.aspx

你可能感兴趣的:(jdbc)