支持 Java 8 并在 Tomcat 8.5 上运行的 Oracle Jdbc 驱动程序版本

JAV*_*CAT 2 java-8 ojdbc tomcat8.5

我想知道支持java8和Tomcat 8.5的ojdbc版本。目前我正在使用 ojdbc14_g.jar,它在我启动应用程序时会出现版本兼容性问题。这适用于 Tomcat 7,但不适用于 Tomcat 8.5。

这适用于 Tomcat 7,但不适用于 Tomcat 8.5。

ibr*_*041 7

只需执行驱动程序,它就会告诉你:

  • 支持的JDK版本

    驱动程序名称中的数字标识支持的 JRE - ojdbc8 => Java8

  • 支持的JDBC标准

  • 支持的数据库服务器版本

注意:Oracle应该支持 off-by-one 主要数据库版本。因此驱动程序版本 Oracle11.2.0.4应该能够连接到 10g、11g、12c(至少 12.1)。

$ java -jar ojdbc6.jar
Oracle 11.2.0.4.0 JDBC 4.0 compiled with JDK6 on Thu_Jul_03_18:17:32_PDT_2014
#Default Connection Properties Resource
#Mon Jun 10 20:13:06 CEST 2019

$ java -jar ojdbc8.jar
Oracle 12.2.0.1.0 JDBC 4.2 compiled with javac 1.8.0_91 on Tue_Dec_13_06:08:31_PST_2016
#Default Connection Properties Resource
#Mon Jun 10 20:13:17 CEST 2019

***** JCE UNLIMITED STRENGTH IS INSTALLED ****
Run Code Online (Sandbox Code Playgroud)

如果您在使用旧的 JDBC 驱动程序连接时遇到问题,您可以在服务器的 sqlnet.ora 中设置 SQLNET.ALLOWED_LOGON_VERSION。这可能有效,但您也必须处理 DB 端支持的密码格式。请参阅ALLOWED_LOGON_VERSION。如果您没有以正确格式将用户密码存储在数据库中,则用户无论如何都无法进行身份验证。

ALLOWED_LOGON_VERSION_SERVER参数还与保存密码的格式有关。以及更改密码时生成的密码哈希类型。恕我直言,您应该避免以原始 10g 格式存储密码。您可以使用以下 SQL 获取用户密码哈希详细信息:

SQL> select username, PASSWORD_VERSIONS from dba_users;

USERNAME                       PASSWORD_VERSIONS
------------------------------ -----------------
SYS                            10G 11G 12C
Run Code Online (Sandbox Code Playgroud)