最初我们使用的是 Oracle 11g 数据库。现在我们想升级到 12c 数据库,而在此迁移的测试阶段,我们在使用 hibernate 连接到数据库时遇到问题,因为我们收到“没有匹配的身份验证协议(protocol)”错误。
我在所有论坛上都试过了,每个人都建议将 ojdbc14 jar 升级到 ojdbc6 jar。
但是我们在我的项目中没有使用 ojdbc14 jar。
我们主要使用 com.springsource jar 。
最佳答案
我认为您看到了解决方法,其中指出 SQLNET.ALLOWED_LOGON_VERSION 应设置为 8,这意味着允许旧版客户端连接。我不认为这是个好主意。你应该更新你的驱动程序你可以得到它here .
要查找 jar 库,请尝试在您的 IDE 中搜索类 oracle.jdbc.driver.OracleDriver
。
只有当您无法将您的解决方案升级到 Java 7 或 8 时,才尝试执行该解决方法。
解决方法 - 使用以下参数在/network/admin 位置创建一个 sqlnet.ora:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
让我们稍微澄清一下 Spring 是 J2EE 的轻量级替代品。 Spring 的目标是帮助以更好的方式构建整个应用程序,通过将同类最佳的单层框架组合在一起以创建连贯的体系结构,从而使其更加一致。
你插入了你的应用 Hibernate 这是 ORM (Object-Relational M apping) 框架,用于将面向对象的域模型映射到关系数据库。
Hibernate 初始化JDBC (Java DataBase Connectivity 这是 java 的 API,它定义了客户端如何访问数据库)可以配置的连接:
- 独立配置您将使用内部配置的驱动程序 应用程序。
- Datasource connection 通过 JNDI 然后所有的数据库驱动和 配置在应用程序服务器端 Hibernate 用户 JNDI 名称 连接。
如果您不确定请添加您的 Hibernate 配置,请分享您使用的是哪种配置?
关于java - Hibernate 没有匹配的认证协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855167/