支持 Java 8 并在 Tomcat 8.5 上运行的 Oracle Jdbc 驱动程序版本
Version of Oracle Jdbc Driver which supports Java 8 and runs on Tomcat 8.5
我想知道支持 java8 和 Tomcat 8.5 的 ojdbc 版本。目前我正在使用 ojdbc14_g.jar,这会在我启动应用程序时出现版本兼容性问题。这适用于 Tomcat 7 但不适用于 Tomcat 8.5。
这适用于 Tomcat 7 但不适用于 Tomcat 8.5。
只需执行驱动程序,它会告诉你:
支持的JDK版本
驱动程序名称中的数字标识支持的 JRE - ojdbc8 => Java8
支持JDBC标准
支持的数据库服务器版本
注意:Oracle 应该 支持off-by-one 主要数据库版本。因此驱动程序版本 Oracle 11.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 ****
如果您在使用旧的 JDBC 驱动程序连接时遇到问题,您可以在服务器的 sqlnet.ora 中设置 SQLNET.ALLOWED_LOGON_VERSION。这可能有效,但您还必须处理数据库端支持的密码格式。参见 ALLOWED_LOGON_VERSION。如果您没有以正确格式将用户密码存储在数据库中,用户将无法进行身份验证。
ALLOWED_LOGON_VERSION_SERVER
参数还与密码的保存格式有关。以及更改密码时会生成哪些类型的密码哈希。恕我直言,您应该避免以原始 10g 格式存储密码。您可以使用此 SQL:
获取用户密码哈希详细信息
SQL> select username, PASSWORD_VERSIONS from dba_users;
USERNAME PASSWORD_VERSIONS
------------------------------ -----------------
SYS 10G 11G 12C
<!-- https://mvnrepository.com/artifact/com.oracle.ojdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
这对我有用。
我想知道支持 java8 和 Tomcat 8.5 的 ojdbc 版本。目前我正在使用 ojdbc14_g.jar,这会在我启动应用程序时出现版本兼容性问题。这适用于 Tomcat 7 但不适用于 Tomcat 8.5。
这适用于 Tomcat 7 但不适用于 Tomcat 8.5。
只需执行驱动程序,它会告诉你:
支持的JDK版本
驱动程序名称中的数字标识支持的 JRE - ojdbc8 => Java8
支持JDBC标准
支持的数据库服务器版本
注意:Oracle 应该 支持off-by-one 主要数据库版本。因此驱动程序版本 Oracle 11.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 ****
如果您在使用旧的 JDBC 驱动程序连接时遇到问题,您可以在服务器的 sqlnet.ora 中设置 SQLNET.ALLOWED_LOGON_VERSION。这可能有效,但您还必须处理数据库端支持的密码格式。参见 ALLOWED_LOGON_VERSION。如果您没有以正确格式将用户密码存储在数据库中,用户将无法进行身份验证。
ALLOWED_LOGON_VERSION_SERVER
参数还与密码的保存格式有关。以及更改密码时会生成哪些类型的密码哈希。恕我直言,您应该避免以原始 10g 格式存储密码。您可以使用此 SQL:
SQL> select username, PASSWORD_VERSIONS from dba_users;
USERNAME PASSWORD_VERSIONS
------------------------------ -----------------
SYS 10G 11G 12C
<!-- https://mvnrepository.com/artifact/com.oracle.ojdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
这对我有用。