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:Formato stringa URL per la connessione al database Oracle con JDBC
java.sql.SQLException: No suitable driver found for 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, in ogni modo? Sono menzionati molto ma non sono stato in grado di trovare una descrizione.
EDIT (la risoluzione):
in base alla risposta del duffymo, ho ottenuto ojdbc14.jar
da Oracle's download site e lo lasciò cadere nel fatto riferimento alla Biblioteche del progetto Eclipse. Poi ho cambiato l'inizio del codice in
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
e ha funzionato.
Volevo solo per aggiornare la documentazione che sembra essersi spostato qui: http://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.html Il link fornito nella risposta più votata ora reindirizza a una pagina 404. – drosenblatt
Le stringhe di connessione che utilizzano i SID stanno diventando piuttosto obsolete. L'utilizzo dei nomi di servizio conferisce al DBA molta più flessibilità (ad esempio, più servizi ospitati su un'istanza di database (consolidamento) o l'utilizzo di più istanze per un servizio (RAC)). Vedi la risposta @Pops. –
Visto che la domanda ha quasi cinque anni, direi che non è una sorpresa. – duffymo