自最近三天以来,我仅通过Android-Oracle 12c数据库。]的简单连接就遇到了问题。 最近我已上传Android-Oracle-Connection,但适用于11g版本。我用过ojdbc14.jar
我在该演示中使用了以下代码行:
更改为相同的代码,但是它不起作用。/** * Driver for Oracle */ private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver"; /** * URL to connect database */ private static final String DEFAULT_URL = "jdbc:oracle:thin:@192.168.0.102:1521:oracle"; // Change IP_Address:Database /** * Creating Connection * * @param driver driver object * @param url url for db * @param username username * @param password password * @return Connection object * @throws ClassNotFoundException throwing exception * @throws SQLException throwing exception */ public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException { Class.forName(driver); return DriverManager.getConnection(url, username, password); }
现在问题是,我正在使用IP:192.168.0.102
来成功连接11g,但是我用相同的代码将12c的IP 192.168.0.105
我收到以下错误消息:
java.sql.SQLException: ORA-28040: No matching authentication protocol
我已经checked this answer并尝试过但出现错误:
W/oracle.jdbc: Error while registering Oracle JDBC Diagnosability MBean. java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/management/ManagementFactory; at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:321) at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:203) at java.security.AccessController.doPrivileged(AccessController.java:43) at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:199) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at java.lang.Class.forName(Class.java:379)
我也已经有tried this answer,但收到错误消息:
2019-11-23 16:36:12.564 28567-28567/com.demo.oracle E/AndroidRuntime: FATAL EXCEPTION: main Process: com.demo.oracle, PID: 28567 java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar) at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:230) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at java.lang.Class.forName(Class.java:379)
我没有找到任何与12c相关的教程或文档。谁能帮忙?
自最近三天以来,我仅通过简单的Android连接就遇到了问题-Oracle 12c数据库。最近,我上传了Android-Oracle-Connection,但其版本为11g。我用过ojdbc14 ....
[旧文章,但只是为了回答它,您必须在数据库服务器sqlnet.ora文件上添加一个参数,以允许来自旧客户端的连接。当您的客户端旧并且服务器仅允许来自sqlnet客户端的最新版本的连接时,会发生此错误。示例11g客户端尝试连接到18c DB Server。