JDBC驱动程序与网桥

IAmYourFaja:

我现在在几个应用程序中都使用JDBC来查询Derby,PostgreSQL和MySQL数据库。我想我在尝试了解一些基本术语时试图理解引擎盖下到底发生了什么。我见过几个术语:

  • ODBC
  • JDBC驱动程序
  • JDBC-ODBC桥

对于每个人,我都会尽力进行一些挖掘,并了解它们的用途,作用以及彼此之间的关系。我相信我已经走了70%的路,我似乎找不到任何东西(articesl,博客,文档等)可以将所有东西很好地结合在一起并证实我的怀疑。

似乎ODBC是程序可以用来与RDBM系统(例如PostgreSQL和MySQL)进行通信的C库(也许是DLL?)。对这些系统的所有查询都流入和流出给定系统上的该库。

JDBC-ODBC桥是一个Java组件,其中包含允许JDBC与给定系统上的ODBC库进行通信的本机代码。

JDBC是用于查询RDBM系统的纯Java API。

我真正遇到麻烦的地方是JDBC驱动程序(例如PostgreSQL-JDBC驱动程序)。如果所有RDBM系统都遵循RDBMS标准,并且可以与ODBC库进行通信,那么为什么JDBC对于每个系统都需要不同的“驱动程序”?

这些驱动程序是什么?他们在做什么?为什么有必要?同样,我在这里提出的任何其他主张的澄清也将不胜感激。提前致谢!

巴勃罗·圣克鲁斯:

你快到了。好问题。

这些驱动程序是什么:纯JDBC驱动程序是用Java编写的驱动程序,不需要ODBC驱动程序即可工作。当您没有数据库的直接JDBC驱动程序时,您应该仅使用ODBC驱动程序(通过JDBC-ODBC桥)(这种情况极为罕见,因为当今大多数(如果不是全部)数据库都支持JDBC)。

纯JDBC的优点是不需要ODBC。ODBC通常很难配置,并且需要在系统上安装数据库本机客户端库(例如Oracle OCI或Sybase CT库)。

过去常常出于性能原因选择ODBC或本机驱动程序,但我认为今天纯Java / JDBC的性能几乎与本机/ ODBC对等驱动器一样好。

它们做什么:与ODBC相同。用于访问关系数据库的标准化Java API。

为什么它们是必需的:它们是必需的,因为使用它们更简单,您只需要JDBC库JAR和URL连接即可。反对:本机客户端库+ ODBC驱动程序+ JDBC-ODBC配置。同样,每个数据库都有其自己的网络协议以对它执行查询并取回结果。因此,每个数据库供应商都需要一个驱动程序。它们中的每一个都实现连接到其关系数据库管理器所需的特定协议。如果您所处的世界中所有数据库都共享相同的SQL语言和相同的通信协议,则只需一个驱动程序。但这不会很快发生。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章