Formato de texto URL para a ligação à base de Dados Oracle com o JDBC

Sou um novato no desenvolvimento web relacionado com Java, e não consigo obter um programa simples com o JDBC a funcionar. Estou a usar o oráculo 10g XE e o eclipse EE IDE. A partir dos livros e páginas web que eu verifiquei até agora, eu reduzi o problema para um URL de banco de dados incorretamente escrito ou um arquivo JAR em falta. Estou a receber o seguinte erro:

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.

Author: Pops, 2009-06-28

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.

 33
Author: duffymo, 2014-01-29 18:07:12
Há duas maneiras de preparar isto. Se tiver um SID, use este (mais antigo) formato:
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.

 37
Author: Pops, 2011-12-13 18:33:19

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).
 14
Author: Clara, 2013-03-02 13:14:15

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");

 3
Author: Ketan Vishwakarma, 2013-07-12 22:11:29

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.
 1
Author: Crippledsmurf, 2018-08-17 07:27:47
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());         
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");
 0
Author: Steve Prior, 2012-06-22 13:59:06