开发者社区> 问答> 正文

JDBC跟ODBC的区别是什么?

JDBC跟ODBC的区别是什么?

展开
收起
中意521 2024-08-22 14:29:09 48 0
3 条回答
写回答
取消 提交回答
    1. jdbc是java通过网络访问db的url连接的方式;odbc是本地建立连接后再使用的方式。

    或者说:前者是数据库官方版本,后者是符合规范的通用版本。

    1. 驱动不同:JDBC的驱动程序由数据库厂商提供,ODBC驱动程序由微软提供。

    2. java中一般采用JDBC连接 或JDBC-ODBC桥连接;java不直接调用ODBC API的原因是 ODBC采用C语言编写, 在移植性、安全性方面有欠缺。

    3. JDBC-ODBC桥连接 一般用于本地学习或者局域网内使用;而JDBC方式可实现跨平台移植,适用范围广。

    4. JDBC-ODBC桥连接一般用在JDK 5 以前。由于在JDK 5 以前,服务器厂商没有提供JDBC驱动程序,只能采用ODBC桥连接。

    image.png

    ——参考链接

    2024-08-23 08:06:49
    赞同 5 展开评论 打赏
  • JDBC(Java Database Connectivity)和ODBC(Open Database Connectivity)都是数据库访问接口,它们允许应用程序使用统一的方法来访问不同的数据库管理系统。尽管两者都旨在实现数据库无关性,但它们之间存在一些关键差异:

    1. 平台和语言兼容性
      • JDBC 是专为Java编程语言设计的,提供了与SQL数据库交互的标准Java API。这意味着它天然与Java环境集成,无需额外的语言转换层。
      • ODBC 则是一个更为通用的解决方案,支持多种编程语言,包括C、C++、Python等,只要语言能够调用C库即可使用ODBC。它通过DLL(在Windows系统中)或共享库(在Unix-like系统中)形式提供数据库访问能力。
    2. 性能与效率
      • JDBC 由于直接与Java绑定,可以提供更好的性能,特别是在Java应用程序中,因为它减少了语言间的数据转换和调用开销。
      • ODBC 作为一个中间层,可能会引入轻微的性能损失,因为它需要在应用程序代码和数据库之间进行更多的数据格式转换。
    3. 驱动程序和数据库支持
      • 两者都需要相应的数据库驱动程序来实现与特定数据库的通信。JDBC通常针对每种数据库都有专门的驱动,而ODBC则试图提供一种更通用的接口,尽管这可能导致某些数据库的特有功能无法充分利用。
    4. 事务处理
      • 在SelectDB中,ODBC事务支持通过会话变量enable_odbc_transcation来启用,以确保数据写入的原子性,但可能会影响写入性能。

    相比之下,JDBC的事务处理通常更加紧密地集成于Java应用环境中,具体表现取决于所使用的数据库驱动和Java应用的配置。 综上所述,选择JDBC还是ODBC主要取决于您的开发环境、语言偏好以及对性能、兼容性和易用性的具体需求。Java应用通常首选JDBC,而跨语言或多平台项目可能会考虑ODBC。

    参考链接:https://developer.aliyun.com/article/325833?

    2024-08-22 14:59:51
    赞同 2 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    可以参考社区开发人员提供的这篇文章,写的非常清晰

    image.png

    2024-08-22 14:45:20
    赞同 6 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载