The Java Database Connectivity ( JDBC) Application Programmer Interface ( API ) gir klasser for å koble til og få tilgang til data i tabellform , inkludert relasjonsdatabaser. ResultSet klassen inneholder metoder for å hente , navigere , og manipulere databasen søkeresultatene. Eksempel Miljø  
 I de følgende eksemplene , vil du koble til en database som heter " ansatte ", en enkel tabell i databasen som heter "folk" som inneholder tre kolonner : " first_name ", " etternavn ", " tittelen , "og" lønn ". Bordet inneholder følgende poster : 
 
 Bob , Smith , Clerk , 23.50Ted , Anderson , Designer, 38.00Fred , Johnson , Programmerer, 32.25Alice , Anderson , Engineer , 46.75Bob , Clark , Intern , 15.00Carol , Smith , leder, 42.50 
 søke i databasen 
 
 Lag en database tilkobling og lage en erklæring objekt ved å ringe vår Connection objektets createStatement ( )-funksjonen . 
 < p > String url = " jdbc : mysql ://localhost /ansatte "; Connection conn = DriverManager.getConnection ( url , "brukernavn" , "passord "); Statement st = conn.createStatement (); 
 
 Lag en spørring streng som inneholder en gyldig SQL-spørring uttalelse 
 
 String query = " SELECT fornavn, etternavn FROM folk "; . 
 
 Opprett en ResultSet objekt ved hjelp av erklæringen objektet for å utføre spørringen til databasen . 
 
 ResultSet rs = st.executeQuery (spørring ) ; 
 
 ResultSet objekt, rs , inneholder nå resultatene av spørringen : den " first_name " og " etternavn " kolonner for hver post i "folk " tabellen . 
 tilgang Query Resultater 
 
 ResultSet objektet har en markør , som i utgangspunktet ikke peker på noen rekord . Ring ResultSet første ()-funksjonen for å flytte markøren til den første posten holdt av ResultSet objektet . ResultSet oss få funksjoner gir tilgang til innholdet i hver kolonne ved hjelp av kolonnen navn fra databasen tabellen . Bruk getString (String columnLabel ) for å hente innholdet i VARCHAR kolonner " first_name " og " etternavn ". 
 
 Rs.first (); String fn = rs.getString ( " first_name "); String ln = rs . getString ( " etternavn "); System.out.println ( ln + " , " + fn ) ; 
 
 Den siste linjen ovenfor utskrifter : en 
 Smith , Bob 
 
 Ring ResultSet siste ()-funksjonen til å flytte markøren til den siste posten holdt av ResultSet objektet 
 
 rs.last (); . fn = rs.getString ( " first_name "); ln = rs.getString ( " last_name "); System.out.println ( ln +" , "+ fn ) ; 
 
 Den siste linjen ovenfor utskrifter : en 
 Smith , Carol 
 Stepping gjennom resultater fra spørring 
 
 Vanligvis vil du ønsker å få tilgang til alle resultatene som returneres av spørringen . ResultSet neste ( )-funksjonen flytter markøren frem til neste post . Når markøren flyttes forbi slutten av resultatet sett , den neste ( )-funksjonen returnerer NULL , slik at du kan bruke returverdien å flykte fra en while-loop 
 
 Statement st = conn.createStatement ( ) . ; String query = "SELECT * FROM folk der lønn > 30 "; ResultSet rs = st.executeQuery (spørring ) ; 
 
 while ( rs.next ( ) ) { String fn = rs.getString ( " first_name " ) ; String ln = rs.getString ( " etternavn "); System.out.println (fn + " " + ln ) ;} 
 
 mens sløyfe trinn gjennom hver post i resultatsettet , og utskrifter : 
 
 Ted AndersonFred JohnsonAlice AndersonCarol Smith 
 
 ResultSet tidligere ( )-funksjonen beveger markøren bakover én post i resultatsettet , og returnerer NULL når markøren har flyttet før den første posten . Dette tillater deg å gå baklengs gjennom resultatsettet og bruke returverdien fra den forrige ( )-funksjonen for å unnslippe en stund loop. Fortsetter eksempelet ovenfor , ble markøren igjen plassert etter den siste posten i resultatsettet. Bruk den forrige ( )-funksjonen spasertur bakover gjennom søkeresultatene , skriver tittel og lønn kolonner fra hver post . Bruk ResultSet er getFloat (String columnLabel )-funksjonen for å få tilgang til innholdet av flottøren kolonnen " lønn" : en 
 while ( rs.previous ( ) ) { String t = rs.getString ( "title "); int w = rs.getFloat ( " lønn" ); System.out.println (fn + "$" + ln ) ;} 
 
 mens sløyfe skritt bakover gjennom hver post i resultatsettet , og utskrifter : 
 
 leder $ 42.50Engineer $ 46.75Programmer $ 32.25Designer $ 38,00 
 Random Access Navigering 
 
 ResultSet tilbyr funksjoner for å flytte markøren vilkårlig gjennom postene i et resultatsett. Hente alle postene inneholdt av "folk " tabellen , sortert etter " etternavn " og deretter " first_name " kolonner: 
 
 Statement st = conn.createStatement ( ) ; String query = "SELECT * FROM folk rekkefølge etter etternavn , first_name "; ResultSet rs = st.executeQuery (spørring ) ; 
 
 resultatet sette inneholder : en 
 Alice , Anderson , Engineer , 46.75Ted , Anderson , designer, 38.00Bob , Clark , Intern , 15.00Fred , Johnson , Programmerer, 32.25Bob , Smith , Clerk , 23.50Carol , Smith , leder, 42.50 
 
 Bruk den absolutte ( int rad )-funksjonen til å sette markøren til en bestemt rad i resultatsettet . En positiv verdi for raden parameter vil flytte markøren fremover fra før begynnelsen av resultatsettet. En negativ verdi for raden parameter vil flytte markøren bakover fra slutten av resultatet sett : en 
 rs.absolute ( 3 ) ; String fn = rs.getString ( " first_name "); String ln = rs . getString ( " etternavn "); System.out.println (fn + " " + ln ) ; 
 
 rs.absolute ( 5 ) ; String fn = rs.getString ( " first_name "); String ln = rs . getString ( " etternavn "); System.out.println (fn + " " + ln ) ; 
 
 rs.absolute ( -1 ) ; String fn = rs.getString ( " first_name "); String ln = rs.getString ( " etternavn "); System.out.println (fn + " " + ln ) ; 
 
 rs.absolute ( -3 ) ; String fn = rs.getString ( " first_name "); String ln = rs.getString ( " etternavn "); System.out.println (fn + " " + ln ) ; 
 
 print uttalelser ovenfor utgang: 
 
 Bob ClarkBob SmithCarol SmithFred Johnson 
 
 Fortsetter , bruker relative ( int rad ) for å flytte markøren bakover eller forover i forhold til den aktuelle posisjonen. Markøren ble igjen plassert på den fjerde plate av resultatet settet. Flytte den frem to rader, deretter bakover fire rekker: 
 
 rs.relative ( 2 ), fn = rs.getString ( " first_name "); ln = rs.getString ( " etternavn "); System.out . println (fn + " " + ln ) ; 
 
 rs.relative ( -4 ), fn = rs.getString ( " first_name "); ln = rs.getString ( " etternavn "); System.out . println (fn + " " + ln ) ; 
 
 print uttalelser i koden ovenfor utgang : en 
 Carol SmithTed Anderson 
 Endre Resultater 
 
 
 endre innholdet i et resultat sett med ResultSet sin update . Bruk updateString (String columnLabel , String x ) for å endre alle poster som samsvarer " Bob " i " first_name "-kolonnen til " Robert ". Bruk beforeFirst ()-funksjonen for å nullstille markøren til før begynnelsen av resultatet satt slik at du kan gå gjennom den oppdaterte resultat sett og skrive ut de nye verdiene : 
 
 String query = "SELECT * FROM folk " ; ResultSet rs = st.executeQuery (spørring ) ; 
 
 while ( rs.next ( ) ) { String fn = rs.getString ( " first_name "); if ( fn.equals ( " Bob" ) { rs.updateString ( " first_name ", " Robert" ); } } rs.beforeFirst ( ) , mens ( rs.next ( ) ) { String fn = rs.getString ( " first_name "); String ln = rs.getString ( " etternavn ") ; System.out.println (fn + " " + ln ) ;} 
 
 følgende resultater skrives : en 
 Robert SmithTed AndersonFred JohnsonAlice AndersonRobert ClarkCarol Smith 
 håndtering feil 
 
 Mange av ResultSet funksjoner kaste en SQLException . Beste praksis tilsier kastet feil skal bli fanget og håndtert . SQLException budskap kan være svært nyttig i debugging tilkobling og spørring feil . Inneholder din tilkobling og spørring kode i try-catch blokker 
 
 try { String url = " jdbc : mysql ://localhost /ansatte "; . Tilkobling conn = DriverManager.getConnection ( url , "brukernavn" , "passord" ) ; Statement st = conn . createStatement (); 
 
 String query = " SELECT fornavn, etternavn FROM folk "; ResultSet rs = st.executeQuery (spørring ) ; 
 
 while ( rs.next ( ) ) { String fn = rs.getString ( " first_name "); String ln = rs.getString ( " etternavn "); System.out.println (fn + " " + ln ) ;} } catch ( SQLException ex ) { System.err.println ( ex.getMessage ( )); } 
 Rydde opp 
 
 ResultSet objekt blir automatisk stengt når Statement objektet brukes til å lage det er nær når den er lukket , en ResultSet . objektet vil automatisk frigjøre ressurser Tving et ResultSet objekt å løslate alle JDBC og database ressurs det holder ved å ringe close () -funksjonen Lukk ResultSet objekt, rs , fra eksemplene ovenfor : . . 
 
 rs.close ( ) ;