Reputation: 345
I am trying to connect to Oracle 10 XE database using Oracle thin drivers but I'm unable to achieve this. I even added the drivers to my classpath during compilation.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class Connectivity {
public static void main(String args[]) throws SQLException {
String url = "jdbc:oracle:thin:@localhost:1521:XE";
Properties props = new Properties();
props.setProperty("user", "SYSTEM");
props.setProperty("password", "iiita");
try {
Class.forName ("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
Connection conn = DriverManager.getConnection(url,props);
String sql ="select sysdate as current_day from dual";
PreparedStatement preStatement = conn.prepareStatement(sql);
ResultSet result = preStatement.executeQuery();
while(result.next()){
System.out.println("Current Date from Oracle : " + result.getString("current_day"));
}
System.out.println("done");
}
}
This code gives the following error during running
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@localhost:1521/XE
at java.sql.DriverManager.getConnection(DriverManager.java:644)
at java.sql.DriverManager.getConnection(DriverManager.java:202)
at Connectivity.main(Connectivity.java:16)
Upvotes: 3
Views: 21110
Reputation: 39654
You forgot to specify the ojdbc14 classpath when running the main class:
For Windows: java -cp .;<path>/ojdbc14.jar Connectivity
On Linux: java -cp .:<path>/ojdbc14.jar Connectivity
P.S. You don't need ojdbc14.jar on your classpath to compile the main class. It's a runtime dependency.
Upvotes: 1
Reputation: 280168
Add this line before your call to getConnection(url, props)
Class.forName ("oracle.jdbc.driver.OracleDriver");
It isn't enough to have the jars on your classpath unless they are jdbc driver > 4.0 version. You have to actually register the driver with the DriverManager
.
Change jdbc:oracle:thin:@localhost:1521:XE
to jdbc:oracle:thin:@//localhost:1521:XE
. I believe this is the new syntax.
Compile as
javac -classpath /<your_path>/ojdbc6.jar Connectivity.java
Run as
java Connectivity
Upvotes: 3