Soy un novato en el desarrollo web relacionado con Java, y parece que no puedo obtener un programa simple con el funcionamiento de JDBC. Estoy usando Oracle 10g XE comercial y el Eclipse EE IDE. De los libros y páginas web que he revisado hasta ahora, reduje el problema a una URL de base de datos escrita incorrectamente o un archivo JAR faltante. Estoy consiguiendo el error siguiente:Formato de cadena URL para conectarse a la base de datos Oracle con JDBC
java.sql.SQLException: No suitable driver found for jdbc:oracle://127.0.0.1:8080
con el código siguiente:
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);
}
}
}
¿Cuál es el formato adecuado para una dirección URL base de datos, de todos modos? Se mencionan mucho, pero no he podido encontrar una descripción.
EDITAR (la resolución):
Sobre la base de la respuesta de duffymo, tengo ojdbc14.jar
de Oracle's download site y lo dejó caer en referenciados Bibliotecas del proyecto Eclipse. Luego cambié el inicio del código a
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
y funcionó.
Sólo quería actualizar la documentación que parece haberse movido aquí: http://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.html El enlace provisto en la respuesta más votado ahora redirige a una página 404. – drosenblatt
Las cadenas de conexión que utilizan SID se están volviendo anticuadas. El uso de nombres de servicios le da al DBA mucha más flexibilidad (por ejemplo, servicios múltiples alojados en una instancia de base de datos (consolidación) o el uso de instancias múltiples para un servicio (RAC)). Ver la respuesta @Pops. –
Al ver que la pregunta tiene casi cinco años, diría que no es una sorpresa. – duffymo