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
-------- 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