问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JDBC和ODBC有什么区别?

发布网友 发布时间:2022-04-07 23:52

我来回答

2个回答

懂视网 时间:2022-04-08 04:13

    先各自简单介绍一下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总的来说还是有更多的共同点:

    比如,JDBC与ODBC都是基于X/Open的SQL调用级接口;

         从结构上来讲,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 却对指针用得很广泛(包括很容易出错的指针"void *")。  另外,ODBC 比较复杂,而JDBC 尽量保证简单功能的简便性,同时在必要时允许使用高级功能。如果使用ODBC,就必须手动地将 ODBC 驱动程序管理器和驱动程序安装在每台客户机上。如果完全用 Java 编写 JDBC 驱动程序则 JDBC代码在所有 Java 平台上(从网络计算机到大型机)都可以自 动安装、移植并保证安全性。  总之,JDBC 在很大程度上是借鉴了ODBC的,从他的基础上发展而来。JDBC 保留了 ODBC 的基本设计特征,因此,熟悉 ODBC 的程序员将发现 JDBC 很容易使用。它们之间最大的区别在于:JDBC 以 Java 风格与优点为基础并进行优化,因此更加易于使用。

        

版权声明:本文为博主原创文章,未经博主允许不得转载。

ODBC与JDBC比较

标签:数据库

热心网友 时间:2022-04-08 01:21

在谈区别之前,先来个感性认识。像Oracle、Sybase、MySQL和SQL
Server这些图中的数据库客户端通常通过数据库驱动程序如JDBC、ODBC等访问数据库服务器,
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 比亚迪汽车在中国排第几名 梅毒的早期症状是不是身上会起小红点 我得过梅毒,也用过青霉素,现在玫瑰疹和手脚上的红疹已经基本消失。但是最近身上又出现了一些小红疙瘩, 最近身上长了些红疹而且还起皮是不是得了梅毒? 梅毒是不是后背红疙瘩 梅毒身上起的红斑红点 身上长了小红疙瘩!是梅毒吗? 我的这个是梅毒吗??手上有个小红点,比小米粒还要小很多的点点! 梅毒是什么症状大腿内侧长许多红疙瘩是什么东西? 梅毒背上会长痘痘吗?梅毒身上长是怎样长? 中梅毒以后身上起的疙瘩很痒吗?会不会特别的痒?如题 谢谢了 胳膊上突然起了一些红色小点点,会不会是梅毒疹啊?附有照片 感染“梅毒”的人,身体可能会出现哪三种症状? 数据库中odbc和jdbc的区别 你好在吗 如果使用密码申诉找回忘记的QQ账号? 用密码怎样找回QQ号码 用密码怎么找回qq号 “jdbc”和“odbc”的区别是什么? 初中物理的答题格式 例样 求物理简答题,按中考格式答一下,谢谢 通过lol名字查qq号 为什么544.hk可以lol角色反查qq? 米家自动洗手机是哪个厂家生产的? 小米洗烘一体机哪个厂家代工 巧手洗衣机是小米旗下的吗 jdbc与odbc有什么区别 性能上? 广东省肇庆市高要市金利镇小洲村委会军屯村工业区邮编是什么? 广东省肇庆市高要市金利镇振星村委会振星村邮编是什么? 广东省肇庆市高要市金利镇三要村委会要东村工业区邮编是什么? 广东省肇庆市高要市金利镇二村委会四甲村委邮编是什么? 肇庆市高要区邮政编码 东坑镇金利怡有限公司的邮政编码是多少 深圳市龙岗区布吉镇的邮政编码是多少? 微信健康码为什么没有安徽 砀山县邮政编码多少 深圳的邮编是多少? 华为笔记本电脑KPL一w00可以装盗版系统吗? 华为笔记本可以装ubuntu吗 飞猪高铁订票成功后能不能改乘车人姓名? 戚风蛋糕烤箱忘记预热