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

标签 java-8 ojdbc tomcat8.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应该支持非一主要数据库版本。所以驱动版本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 ****

如果您在使用旧的 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

关于java-8 - 支持 Java 8 并在 Tomcat 8.5 上运行的 Oracle Jdbc 驱动程序版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144818/

相关文章:

java - 在项目中存储 JDBC Oracle Wallet

oracle - ojdbc6.jar 和 ojdbc16.jar 有什么区别

java - 将 LIKE 与 ojdbc7.jar 一起使用时出现 SQLSyntaxErrorException

java - 添加两个 Optional<BigDecimal> 数字的最优雅方法是什么

java - 参数类型为 A 或 B 的类

java - Tomcat多个数据源与解密密码逻辑

java - 无法使用本地 Tomcat 服务器上的 Java REST-API 连接到 pgsql 数据库。堆栈包含 ExceptionInInitializerError 和 IllegalStateException

error-handling - 错误代码: java.lang.IllegalStateException: No output folder while running tomcat

java 8 可选 map() 抛出带有函数引用但不带有完整 lambda 语法的 NPE

java - 编译jsp WebLogic 12c时抛出错误