Formato de texto URL para a ligação à base de Dados Oracle com o JDBC
Java.banco.SQLException: não foi encontrado nenhum controlador adequado para o jdbc: oracle://127.0.0.1:8080
com a seguinte código:
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);
}
}
}
Qual é o formato adequado para um URL de base de dados, afinal? São muitas vezes mencionadas, mas não consegui encontrar uma descrição.
editar (a resolução):
Com base na resposta do duffymo, consegui o download do site da Oracle e deixei-o nas bibliotecas referenciadas do projecto Eclipse. Depois mudei o início do código para...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
E funcionou.
6 answers
Olhaaqui .
O seu URL está completamente incorrecto. Deve ficar assim:
url="jdbc:oracle:thin:@localhost:1521:orcl"
Também não se regista uma aula de condução. Você quer baixar o jarro do driver fino, colocá-lo em seu CLASSPATH, e fazer o seu código parecer mais como Este.
Actualização: o " 14 " em ojdbc14.jar " significa JDK 1.4. Devias combinar a tua versão do driver com o JDK que estás a correr. Aposto que isso significa JDK 5 ou 6.
jdbc:oracle:thin:@[HOST][:PORT]:SID
Se tiver um nome de Serviço Oracle, use este (mais recente) formato:
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
Fonte: esta página do OraFAQ
A chamada para está correcta .
Também, como disse duffymo, certifique-se de que o código do driver está presente, incluindo ojdbc6.jar
no claspath, onde o número corresponde à versão Java que está a usar.
O formato correcto para url pode ser um dos seguintes formatos:
jdbc:oracle:thin:@<hostName>:<portNumber>:<sid>; (if you have sid)
jdbc:oracle:thin:@//<hostName>:<portNumber>/serviceName; (if you have oracle service name)
E não ponhas espaço aí.
Tente usar o 1521 como número de porta.
sid (nome da base de dados) deve ser o mesmo que o que está em variáveis de ambiente (se você estiver usando windows).
Se estiver a utilizar a edição expree oracle 10g, então:
1. para carregar a classe de Utilização
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
2. para ligar à utilização da base de dados
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/password@localhost:1521:xe");
Eu não sou um desenvolvedor Java tão infelizmente eu não posso comentar sobre o seu código diretamente no entanto eu encontrei isso em uma FAQ Oracle sobre a forma de uma cadeia de conexão
jdbc:oracle:<drivertype>:<username/password>@<database>
Da FAQ do Oracle JDBC
Http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_03
Espero que isso ajude.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");