Formato stringa URL per la connessione al database Oracle con JDBC

Sono un principiante dello sviluppo web relativo a Java, e non riesco a ottenere un semplice programma con JDBC funzionante. Sto usando Oracle 10g XE standard e l’IDE EE di Eclipse. Dai libri e dalle pagine Web che ho controllato fino ad ora, ho ridotto il problema a un URL del database scritto in modo errato o a un file JAR mancante. Sto ottenendo il seguente errore:

java.sql.SQLException: nessun driver adatto trovato per jdbc: oracle: //127.0.0.1: 8080

con il seguente codice:

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 è il formato corretto per un URL del database, comunque? Sono menzionati molto ma non sono stato in grado di trovare una descrizione.

EDIT (la risoluzione):

Sulla base della risposta di duffymo, ho ricevuto ojdbc14.jar dal sito di download di Oracle e l’ ho scaricato nelle librerie di riferimento del progetto Eclipse. Quindi ho cambiato l’inizio del codice in

 ... // jdbc:oracle:thin:@:: String url = "jdbc:oracle:thin:@GalacticAC:1521:xe"; ... 

e ha funzionato.

Guarda qui

Il tuo URL è abbastanza scorretto. Dovrebbe assomigliare a questo:

 url="jdbc:oracle:thin:@localhost:1521:orcl" 

Non si registra nemmeno una lezione di guida. Si desidera scaricare il driver JAR thin, inserirlo in CLASSPATH e rendere il proprio codice più simile a questo .

AGGIORNAMENTO: Il “14” in “ojdbc14.jar” sta per JDK 1.4. Dovresti abbinare la tua versione del driver con il JDK che stai utilizzando. Scommetto che significa JDK 5 o 6.

Ci sono due modi per configurarlo. Se hai un SID, usa questo formato (più vecchio):

 jdbc:oracle:thin:@[HOST][:PORT]:SID 

Se si dispone di un nome di servizio Oracle, utilizzare questo formato (più recente):

 jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE 

Fonte: questa pagina OraFAQ

La chiamata a getConnection() è corretta .

Inoltre, come ha detto duffymo, assicurati che il vero codice del driver sia presente includendo ojdbc6.jar nel classpath, dove il numero corrisponde alla versione di Java che stai usando.

Il formato corretto per l’url può essere uno dei seguenti formati:

 jdbc:oracle:thin:@::; (if you have sid) jdbc:oracle:thin:@//:/serviceName; (if you have oracle service name) 

E non mettere nessuno spazio lì. Prova a usare 1521 come numero di porta. sid (nome del database) deve essere uguale a quello che si trova nelle variabili di ambiente (se stai usando windows).

se stai usando l’edizione di Oracle 10g expree allora:
1. per il caricamento della class utilizzare DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); 2. per la connessione al database utilizzare Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/[email protected]:1521:xe");

Non sono uno sviluppatore Java, quindi sfortunatamente non posso commentare direttamente il tuo codice, ma ho trovato questo in una FAQ Oracle riguardante la forma di una stringa di connessione

 jdbc:oracle::@ 

Dalle domande frequenti su Oracle JDBC

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_03

Spero possa aiutare

 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");