ODBC与JDBC比較

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 风格与长处为基础并进行优化。因此更加易于使用。


        

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115902.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java Calendar获取当前时间

    java Calendar获取当前时间获取系统当前时间戳 publicstaticvoidmain(String[]args){ Calendarcal=Calendar.getInstance(); intyear=cal.get(Calendar.YEAR); intmonth=cal.get(Calendar.MONTH)+1; intday=cal.get(Calendar….

    2022年6月9日
    68
  • 网页制作105个问答

    网页制作105个问答

    2021年8月21日
    64
  • linux重命名文件和文件夹的区别_文件夹如何重命名

    linux重命名文件和文件夹的区别_文件夹如何重命名Linux重命名文件和文件夹1.mvlinux下重命名文件或文件夹的命令mv即可以重命名,又可以移动文件或文件夹。例子:将目录A重命名为BmvAB将/a目录移动到/b下,并重命名为cmv/a/b/c例子:ubuntu@ubuntu:~/Public/a2$tree….

    2025年5月28日
    5
  • 创建KVM虚拟机_安卓kvm虚拟机

    创建KVM虚拟机_安卓kvm虚拟机可以用两种方法创建kvm虚拟机,一种是virt-manager管理工具创建,一种是命令行的方式。1.命令行方式创建kvm虚拟机。先创建qcow2格式的镜像文件,大小为20G。qemu-imgcreate-fqcow2/data/kvm/images/centos7.6×86.qcow20G输入命令进行虚拟机的安装:virt-install–name=centos7.6×86–vcpus=2–ram=2048–diskpath=/data/kvm/imag

    2025年7月17日
    6
  • 出口押汇贷款_出口贸易融资业务

    出口押汇贷款_出口贸易融资业务出口商贸易融资工具:出口单据质押贷款出口单据质押贷款:是指进口商与出口商约定以汇款结算方式签订贸易合同,出口商在将货物装运上船,报关之后,将全套正本海运提单质押银行申请贷款,等到进口商付款之后,再将全套正本海运提单寄给进口商。特色:(1)无须其他担保,货物无权质押给银行即可实现资金周转,加速资金流通,给出口商经营带来便利,同时可以规避汇率风险。(2)融资方式简单,方

    2022年9月21日
    5
  • vue 隐藏滚动条_vue滚动条自动滚动到底部

    vue 隐藏滚动条_vue滚动条自动滚动到底部1、设置滚动条: overflow-x:scroll;white-space:nowrap;2、隐藏滚动条:::-webkit-scrollbar{width:0!important;}::-webkit-scrollbar{width:0!important;height:0;}…

    2025年6月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号