我已经在几个应用程序中使用了JDBC来查询Derby、PostgreSQL和MySQL数据库。我想我在试图理解发生在引擎盖下的事情时,卡在了一些基本术语上。以下是我看到的几个术语:
- ODBC
- JDBC驱动程序
- 桥接器
- JDBC-ODBC桥接器
对于每个术语,我尽了最大努力进行了挖掘,以便理解它们是什么,它们的作用以及它们之间的关系。我相信我已经完成了70%,只是似乎找不到任何(文章、博客、文档等)能把所有东西很好地连起来并确认我的猜测的东西。
ODBC似乎是一个C库(可能是DLL?),它使程序可以与RDBM系统(如PostgreSQL和MySQL)通信。在给定的系统上,所有对这些系统的查询都通过这个库流入和流出。
JDBC-ODBC桥接器是一个Java组件,它包含本地代码,允许JDBC与给定系统上的ODBC库进行通信。
JDBC是用于查询RDBM系统的纯Java API。
一个JDBC驱动程序(如PostgreSQL-JDBC驱动程序)是我真正遇到困难的地方。如果所有RDBM系统都遵循RDBMS标准,并且可以与ODBC库通信,那么为什么JDBC需要针对每个系统不同的“驱动程序”呢?
这些驱动程序是什么?它们是做什么的?为什么它们是必需的?另外,对我在此处提出的任何其他说法的澄清将不胜感激。提前感谢!