I'm a newbie to Java-related web development, and I can't seem to get a simple program with JDBC working. I'm using off-the-shelf Oracle 10g XE and the Eclipse EE IDE. From the books and web pages I've checked so far, I've narrowed the problem down to either an incorrectly written database URL or a missing JAR file. I'm getting the following error:
java.sql.SQLException: No suitable driver found for jdbc:oracle://127.0.0.1:8080
with the following code:
import java.sql.*;
public class DatabaseTestOne {
public static void main(String[] args) {
String url = "jdbc:oracle://127.0.0.1:8080";
String username = "HR";
String password = "samplepass";
String sql = "SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE LAST_NAME='King'";
Connection connection;
try {
connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
System.out.println(statement.execute(sql));
connection.close();
} catch (SQLException e) {
System.err.println(e);
}
}
}
What is the proper format for a database URL, anyways? They're mentioned a lot but I haven't been able to find a description.
EDIT (the resolution):
Based on duffymo's answer, I got ojdbc14.jar
from Oracle's download site and dropped it in the Eclipse project's Referenced Libraries. Then I changed the start of the code to
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
and it worked.
There are two ways to set this up. If you have an SID, use this (older) format:
jdbc:oracle:thin:@[HOST][:PORT]:SID
If you have an Oracle service name, use this (newer) format:
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
Source: this OraFAQ page
The call to getConnection()
is correct.
Also, as duffymo said, make sure the actual driver code is present by including ojdbc6.jar
in the classpath, where the number corresponds to the Java version you're using.