首先,JDBC 和 ODBC 不兼容。JDBC 是 Java 对 ODBC 的回答,它们填补了相同的领域,但您不能使用 JDBC 连接到 ODBC 数据源,反之亦然。现在在 Java 中有一个 jdbc-odbc 桥,但这是一个兼容性黑客,而不是一个本地连接器(翻译将是 JDBC->ODBC->(目标数据库)而不是 JDBC->(目标数据库))
ODBC 只是一个标准化接口,用于访问来自不同数据库的数据。您在您的机器上安装 ODBC 到(任何数据库)驱动程序,然后创建一个 ODBC 数据源,然后您可以通过 odbc连接到该数据源,而不必为原始数据库配置本机驱动程序。或者,如果数据库支持 ODBC,您可以通过导入驱动程序直接连接到它。
好处是您可以编写与 odbc 兼容的所有代码,并且无论真正的数据库类型是什么,它都只需少量修改即可工作。
负面影响是性能下降,偶尔会出现奇怪的行为,因为 odbc 无法以完全正确的方式转换某些特定于数据库的操作。支持因人而异。如果您使用 ODBC 连接到某个遗留数据库,您可能有很多工作要做,但是如果您使用它连接到一个访问数据库,那么它将完美地工作。
连接时发生的过程相对简单。您发送“标准化”查询,JDBC 或 ODBC 驱动程序将其转换为您尝试访问的本机框架,然后提交查询。如果数据库返回任何内容,则过程相反。
如果您遇到问题,我会检查您使用的驱动程序。如果你用 java 导入一个坏的驱动程序,什么都不会正常工作。您需要做的第一件事是记录错误。如果您使用的是 ODBC 数据源,您只需在属性中打开登录(查看驱动程序文档以找出正确的设置;它们各不相同)。
如果您使用 JDBC,您可能必须自己捕获并记录 SQLException。