Jdbc java.lang.ArrayIndexOutOfBoundsException:连接到Oracle 10g XE时

Jdbc java.lang.ArrayIndexOutOfBoundsException:连接到Oracle 10g XE时,jdbc,oracle10g,Jdbc,Oracle10g,您好,我正在尝试使用JDBC与Oracle建立连接 我在Win7 x86上运行Oracle 10g R2 XE、Eclipse Java EE Juno和Java SE v1.7。我已经在WebContent/WEB-INF/lib中包含了类.12.jar和类ojdbc5.jar,因为之前使用ojdbc.jar时,连接到数据库时出现错误。所以我很不确定我到底要包括哪个司机 我的代码是: Connection conn = null; String driverName = "or

您好,我正在尝试使用JDBC与Oracle建立连接

我在Win7 x86上运行Oracle 10g R2 XE、Eclipse Java EE Juno和Java SE v1.7。我已经在WebContent/WEB-INF/lib中包含了类.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)
它给了我以下的例外:

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)
没用


同时使用ojdbc5.jar和ojdbc6.jar,但没有任何用处:(

您的URL似乎有误

您所指的是
ojdbc5.jar
,最好使用
ojdbc6.jar

可以在以下位置找到Jar:-

$ORACLE_HOME/jdbc/lib/ojdbc6.jar
这样做:-

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


事实上,我以前试过。它给我一个异常(我现在已经添加到原始问题中)说url格式无效,这就是我格式化上述url的原因。我用ojdbc6.jar尝试过这个,没有区别。请查看我在原始问题中添加的stacktrace,看看你是否能发现任何错误。请帮助。
$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");