Oracle - JDC 代码抛出数组越界异常

Oracle - JDC code throwing Array out of bound exception

   -------- Oracle JDBC Connection Testing ------

Oracle JDBC Driver Registered!

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
    at oracle.security.o3logon.C0.r(C0)
    at oracle.security.o3logon.C0.l(C0)
    at oracle.security.o3logon.C1.c(C1)
    at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper)
    at oracle.jdbc.ttc7.O3log.<init>(O3log.java:289)
    at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:251)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:246)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at OracleJDBC.main(OracleJDBC.java:29)

代码: 导入 java.sql.Connection; 导入 java.sql.DriverManager; 导入 java.sql.SQLException;

public class OracleJDBC {
    public static void main(String[] argv) {

        System.out.println("-------- Oracle JDBC Connection Testing ------");

        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");

        } catch (ClassNotFoundException e) {

            System.out.println("Where is your Oracle JDBC Driver?");
            e.printStackTrace();
            return;

        }

        System.out.println("Oracle JDBC Driver Registered!");

        Connection connection = null;

        try {

            connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system","appdb");

        } catch (SQLException e) {

            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
            return;

        }

        if (connection != null) {
            System.out.println("You made it, take control your database now!");
        } else {
            System.out.println("Failed to make connection!");
        }
    }

}

导致异常:"ArrayIndexOutOfBoundsException" 使用 Oracle 11g XE & 添加 classes12.jar 和 ojdc14.jar 到库。

当您使用与应有的不同的数据库驱动程序时会发生这种情况。

您正在使用 Jdbc 版本 9.x。使用 10.x 连接到 XE 并使用 ojdbc14.jar 而使用 JDK 1.4 而不是 classes12.jar。 classes12.jar 通常与 JDK 1.2 和 JDK 1.3 一起使用。

有关更多信息,请参阅 here