odbc 驱动程序如何工作?

Vik*_*iky 2 oracle odbc jboss jdbc

我有一个托管在 jboss 上的应用程序。使用oracle的jdbc驱动连接oracle 10.2g数据库。任何人都可以指导建立会话时会发生什么。

只是想了解 JDBC/ODBC 的内部工作。

任何帮助表示赞赏。

Sat*_*ppy 6

首先,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。