2013-02-02 165 views
1

您好,我正嘗試使用JDBC建立與Oracle的連接。java.lang.ArrayIndexOutOfBoundsException:在連接到Oracle 10g XE時

我在Win 7 x86上運行Oracle 10g R2 XE,Eclipse Java EE Juno和Java SE v1.7。我在WebContent/WEB-INF/lib中包含了classes.12.jar和ojdbc5.jar,因爲之前使用ojdbc.jar時它在連接到數據庫時發生錯誤。所以我很難確切地確定我要包含哪些驅動程序。

我的代碼是:

Connection conn = null; 
    String driverName = "oracle.jdbc.OracleDriver"; 
    String url = "jdbc:oracle:thin:@localhost:1521:xe"; 

    Class.forName(driverName); 
    conn = DriverManager.getConnection(url, "system", "mypassword"); //exception occurs here 

它是在最後一行

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(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at ConnectionManager.getConnection(ConnectionManager.java:16) 
at ConnectionManager.main(ConnectionManager.java:24) 

山姆給予以下異常做錯什麼,或者還我使用錯誤的驅動程序。我應該包括哪一個?

編輯

我也試過網址:

String url = "jdbc:oracle:thin:@//localhost:1521/xe"; 

它給了我以下異常:

java.sql.SQLException: Io exception: Invalid connection string format, a valid format is: "host:port:sid" 
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168) 
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210) 
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:323) 
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:260) 
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365) 
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at ConnectionManager.getConnection(ConnectionManager.java:17) 
at ConnectionManager.main(ConnectionManager.java:25) 

我也試着更改驅動器名:

String driverName = "oracle.jdbc.driver.OracleDriver"; 

沒用。

並與ojdbc5.jar,ojdbc6.jar,但沒有用。 :'(

回答

0

您的網址似乎是錯誤的

而且你是指ojdbc5.jar,更好地你應該使用ojdbc6.jar

罐可以在這個位置找到: - 。

$ORACLE_HOME/jdbc/lib/ojdbc6.jar 

這樣做: -

Connection conn = null; 
String driverName = "oracle.jdbc.driver.OracleDriver"; 

String driverName = "oracle.jdbc.OracleDriver"; 
String url = "jdbc:oracle:thin:@//localhost:1521/xe"; 

Class.forName(driverName); 
conn = DriverManager.getConnection(url, "system", "mypassword"); 
+0

謝謝回覆一次,我回到家裏 – Mahesha999

+0

其實我以前試過。它給了我異常(我現在添加到原始問題)說無效的網址格式,這就是爲什麼我格式化上述網址。我已經用ojdbc6.jar試過了,沒有區別。請參閱我在原始問題中添加的堆棧跟蹤,看看你是否能找到任何錯誤。請幫忙。 – Mahesha999