1
votes

Hi I am trying to establish connection to Oracle with JDBC.

I am on Win 7 x86, running Oracle 10g R2 XE, Eclipse Java EE Juno and Java SE v1.7. I have included both classes.12.jar and ojdbc5.jar in WebContent/WEB-INF/lib since earlier with ojdbc.jar it was giving an error while connecting to database. So am quite unsure exactly which driver I to include.

My code is:

    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

It is giving following exception at the last line

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)

Sam doing anything wrong, or still I am using wrong driver. Which one should I include?

Edit

I also tried URL:

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

It gave me following exception:

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)

I also tried changing driver name to:

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

no use.

And with both ojdbc5.jar, ojdbc6.jar, but no use. :'(

1

1 Answers

0
votes

Your URL seems to be wrong.

And you are referring to ojdbc5.jar, better you should use ojdbc6.jar

Jar can be found at this location:-

$ORACLE_HOME/jdbc/lib/ojdbc6.jar

Do this way:-

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

OR

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

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