Il Java Database Connectivity ( JDBC ) Application Programmer Interface ( API ) fornisce classi per la connessione e l'accesso ai dati tabulari , inclusi database relazionali . La classe ResultSet fornisce i metodi per il recupero , la navigazione e la manipolazione dei risultati delle query di database . Esempio Ambiente
Negli esempi che seguono , sarà connettersi a un database denominato " personale", una singola tabella all'interno del database di nome "popolo " che contiene tre colonne : " first_name " , " cognome " , " titolo ", e il " salario ". La tabella contiene i seguenti record:
Bob , Smith , Impiegato, 23.50Ted , Anderson , Designer, 38.00Fred , Johnson , programmatore , 32.25Alice , Anderson , ingegnere , 46.75Bob , Clark , Intern , 15.00Carol , Smith , manager, 42.50
interrogare il database
creare una connessione al database e creare un oggetto Statement chiamando la funzione createStatement del nostro oggetto Connection ( ) .
< p > String url = " jdbc : mysql ://localhost /personale " ; Connection conn = DriverManager.getConnection ( url , "username " , " password") ; Statement st = conn.createStatement ();
Creare una stringa di query che contiene una query dichiarazione
String query SQL valida
= " first_name SELECT cognome FROM persone " ; .
Creare un oggetto ResultSet utilizzando l' oggetto Statement per eseguire la query al database .
ResultSet rs = st.executeQuery ( query) ;
l'oggetto ResultSet , rs , ora contiene i risultati della ricerca: il " first_name " e colonne " last_name " per ogni record la tabella " persone " .
Accesso ai risultati delle query
l' oggetto ResultSet è un cursore , che inizialmente non punta ad alcun record . Chiamare prima ( ) funzione di ResultSet per spostare il cursore sul primo record detenuto da l'oggetto ResultSet . Funzioni get del ResultSet consentono l'accesso ai contenuti di ogni colonna con il nome della colonna della tabella del database . Utilizzare getString (String columnLabel ) per recuperare il contenuto del VARCHAR colonne " first_name " e " cognome ".
Rs.first (); String fn = rs.getString ( " first_name " ) ; String ln = rs . getString ( " cognome " ) ; System.out.println ( ln + "," + fn) ;
L'ultima riga sopra le stampe :
Smith , Bob
Chiama ultimo ( ) funzione di ResultSet per spostare il cursore sull'ultimo record detenuto da l'oggetto ResultSet
rs.last ( ) . fn = rs.getString ( " first_name " ) ; ln = rs.getString ( " cognome " ) ; System.out.println ( ln + ", " + fn) ;
L'ultima riga sopra le stampe :
Smith , Carol
Stepping attraverso la query risultati
genere, si desidera accedere a tutti i risultati restituiti dalla query . Successivo) la funzione di ResultSet ( sposta il cursore in avanti per il prossimo disco . Quando il cursore viene spostato oltre la fine del set di risultati , l' ) funzione successiva ( restituisce NULL , che consente di utilizzare il valore di ritorno di fuggire da un ciclo while
Statement st = conn.createStatement ( ) . ; String query = "SELECT * FROM persone cui salario > 30" ; ResultSet rs = st.executeQuery ( query) ;
mentre ( rs.next ( ) ) { String fn = rs.getString ( " first_name " ) ; String ln = rs.getString ( " cognome " ) ; System.out.println ( fn + " " + ln );}
mentre passi di loop attraverso ogni record nel set di risultati , e le stampe : precedente ( ) funzione
Ted AndersonFred JohnsonAlice AndersonCarol Smith