Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Java Programming >> Content
    JDBC ResultSet Eksempel
    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 ( ) ;

    früher :

     Weiter:
      Relatert Artike
    ·Slik Clear Java Web Start Cache 
    ·Hvordan utdatavariablene til XML Strings på Android 
    ·Hvordan Grab Viktige hendelser utenfor Java 
    ·Hvordan finne den korteste Ord i Java 
    ·Hvordan endre Pakkenavn i Eclipse 
    ·Slik installerer OpenCms 
    ·Java Software Opplæring på CD 
    ·Hvordan skrive din egen Simple Java Message Queue 
    ·Hvordan sette Desimal -format på en applet 
    ·Slik deaktiverer en klient Keyboard server ved hjelp av…
      Anbefalte artikler
    ·Redefinere metoder i C + + 
    ·Hvordan legge inn en dato i MySQL 
    ·Hvordan Kill a MySQL Query 
    ·Hvordan lage en Lace skuldertrekning 
    ·Slik fjerner en String verdi i Regedit 
    ·Hvordan bruke Logon Scripts sette Skrivere 
    ·Hvordan lage en setup.exe-filen 
    ·Hvordan velge Fra et datasett i Visual Basic 
    ·Hvordan lage en link Bounce Med jQuery 
    ·1997 Bayliner Capri Specs 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/