zoukankan      html  css  js  c++  java
  • ODBC与JDBC比較

         在学习J2EE的JDBC过程中,刚见到JDBC就立即联想到了ODBC,并且我们能够肯定他们之间有必定的关系。開始学它的时候还是认为有点晕,于是就查了非常多资料,与比較熟悉的ODBC进行了比較。

        先各自简介一下ODBC和JDBC。

        ODBC(Open Database Connectivity)是一组对数据库訪问的标准API。这些API通过SQL来完毕大部分任务,并且它本身也支持SQL语言,支持用户发来的SQL。

    ODBC定义了訪问数据库API的一组规范。这些API独立于形色各异的DBMS和编程语言。

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

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

        JDBC(JavaDatabase Connectivity是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层API。它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序猿提供标准的数据库API。

        JDBC API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。

    它同意Java程序猿发送SQL指令并处理结果。

     

        事实上JDBC和ODBC总的来说还是有很多其它的共同点

        比方,JDBCODBC都是基于X/OpenSQL调用级接口;

             从结构上来讲,JDBC的整体结构类似于ODBC,都有四个组件:应用程序、驱动程序管理器、驱动程序和数据源,工作原 理亦大体同样。  

        在内容交互方面。JDBC保持了ODBC的基本特性,也独立于特定数据库. 并且都不是直接与数据库交互,而是通过驱动程序管理器。      

            他们二者之间的差别

     我们知道,ODBC差点儿能在全部平台上连接差点儿全部的数据库。为什么 Java 不使用 ODBC?
     答案是:Java 能够使用 ODBC。但最好是以JDBC-ODBC桥的形式使用(Java连接整体分为Java直连和JDBC-ODBC桥两种形式)。
     那为什么还须要 JDBC?
     由于ODBC 不适合直接在 Java 中使用,由于它使用 C 语言接口。从Java 调用本地 C代码在安全性、实现、牢固性和程序的自己主动移植性方面都有很多缺点。

    从 ODBC C API 到 Java API 的字面翻译是不可取的。

    比如,Java 没有指针。而 ODBC 却对指针用得非常广泛(包含非常easy出错的指针"void *")。

     另外,ODBC 比較复杂,而JDBC 尽量保证简单功能的简便性。同一时候在必要时同意使用高级功能。

    假设使用ODBC。就必须手动地将 ODBC 驱动程序管理器和驱动程序安装在每台客户机上。

    假设全然用 Java 编写 JDBC 驱动程序则 JDBC代码在全部 Java 平台上(从网络计算机到大型机)都能够自 动安装、移植并保证安全性。

     总之,JDBC 在非常大程度上是借鉴了ODBC的,从他的基础上发展而来。JDBC 保留了 ODBC 的基本设计特征,因此。熟悉 ODBC 的程序猿将发现 JDBC 非常easy使用。

    它们之间最大的差别在于:JDBC 以 Java 风格与长处为基础并进行优化。因此更加易于使用。



            

  • 相关阅读:
    mongodb的in和update操作
    curl -u转java代码
    java中方便判断实体类每个参数是否为空
    java中map/json转实体类
    C语言中char转jstring类型
    SpringBoot Mybatis PageHelper插件报错
    javax.servlet-api.jar
    Linux服务器上安装tomcat
    Linux服务器通过拷贝的方式安装多个tomcat
    记录一个bootstrap因js加载顺序导致的问题(tstrap-table-mobile.min.js:7 Uncaught TypeError: Cannot read property 'defaults' of undefined)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5216802.html
Copyright © 2011-2022 走看看