| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Java programmering >> Content
    JDBC ResultSet Eksempel
    Java Database Connectivity ( JDBC ) Application Programmer Interface ( API) giver klasser for tilslutning til og adgang til tabeldata , herunder relationelle databaser . ResultSet klassen indeholder metoder til at hente , navigering, og manipulere databaseforespørgsel resultater. Eksempel Environment

    I de følgende eksempler , vil du oprette forbindelse til en database ved navn "staff ", en enkelt tabel i denne database ved navn "mennesker ", der indeholder tre kolonner : " first_name ", " last_name ", " titel, "og" løn ". Dit bord indeholder følgende records :

    Bob , Smith, Kontorassistent , 23.50Ted , Anderson, Designer, 38.00Fred , Johnson, programmør, 32.25Alice , Anderson, ingeniør, 46.75Bob , Clark , Internt , 15.00Carol , Smith , Manager , 42.50
    Query database

    oprette en database Connection og oprette en erklæring objekt ved at ringe til vores Connection objektets createStatement () funktion .
    < p > String url = " jdbc : mysql ://localhost /ansatte"; Connection conn = DriverManager.getConnection ( url , " brugernavn" , "password "); Statement st = conn.createStatement ();

    Opret en forespørgsel streng, der indeholder et gyldigt SQL forespørgsel erklæring

    String query = "SELECT first_name , last_name FROM folk " .

    Opret et ResultSet objekt ved hjælp af Statement objekt for at udføre forespørgslen til databasen .

    ResultSet rs = st.executeQuery (forespørgsel ),

    ResultSet objekt , rs , nu indeholder resultaterne af forespørgslen , nemlig " first_name " og " last_name " kolonner for hver post i "folk "-tabellen .
    Adgang til Query Results

    ResultSet objektet har en markør , der i første omgang tyder ikke på nogen rekord. Ring ResultSet første ( ) funktionen til at flytte markøren til den første record indehaves af ResultSet objekt. ResultSet os få funktioner giver adgang til indholdet af hver kolonne ved hjælp af kolonnen navn fra databasen tabellen. Brug getString (String columnLabel ) for at hente indholdet af VARCHAR kolonner " first_name " og " last_name . "

    Rs.first (); String fn = rs.getString ( " first_name ") String ln = rs . getString ( " last_name ") System.out.println ( ln + " , " + fn ),

    sidste linje over prints : Hej

    Smith , Bob

    Ring ResultSet sidste ( ) funktionen til at flytte markøren til den sidste rekord indehaves af den ResultSet objekt

    rs.last (); . fn = rs.getString ( " first_name ") ln = rs.getString ( " last_name ") System.out.println ( ln +" , "+ fn ),

    sidste linje over prints : Hej

    Smith , Carol
    Stepping gennem Query Results

    Typisk vil du ønsker at få adgang til alle de resultater, der returneres af forespørgslen. ResultSet næste () funktionen flytter markøren frem til den næste post . Når markøren flyttes forbi slutningen af resultatet sæt den næste ( )-funktionen giver NULL, så du kan bruge returværdien at flygte fra en while-løkke

    Statement st = conn.createStatement (). ; String query = "SELECT * FROM folk, hvor løn > 30 " ResultSet rs = st.executeQuery (forespørgsel ),

    while ( rs.next ( )) { String fn = rs.getString ( " first_name " ), String ln = rs.getString ( " last_name ") System.out.println ( fn + "" + ln );}

    mens loop trin gennem hver post i resultatet , og udskriver :

    Ted AndersonFred JohnsonAlice AndersonCarol Smith

    ResultSet tidligere () funktionen flytter markøren baglæns én post i resultatet , og returnerer NULL , når markøren er flyttet før den første record. Dette giver dig mulighed for at gå baglæns gennem resultatet sæt og bruge returværdien fra den forrige () funktionen til at undslippe en while-løkke . Fortsat eksemplet ovenfor blev markøren efterladt placeret efter den sidste record i resultatet . Brug det forrige () funktion walk baglæns gennem forespørgslen resultater , trykning titel og løn kolonner fra hver post . Brug ResultSet s getFloat (String columnLabel ) funktion til at få adgang til indholdet af FLOAT kolonnen " løn " : Hej

    while ( rs.previous ( )) { String t = rs.getString ( "title ") int w = rs.getFloat ( " løn ") System.out.println ( fn + " $ " + ln );}

    mens loop skridt baglæns gennem hver post i resultatet , og udskriver : Hej

    manager $ 42.50Engineer $ 46.75Programmer $ 32.25Designer 38,00 dollar
    Random Access Navigation

    ResultSet tilbyder funktioner til at bevæge markøren vilkårligt gennem posterne i et resultatsæt. Hent alle poster , der er indeholdt i "folk "-tabellen , sorteret efter de " last_name " og derefter " FIRST_NAME " kolonner:

    Statement st = conn.createStatement (); String query = "SELECT * FROM folk ordre ved last_name , first_name " ResultSet rs = st.executeQuery (forespørgsel ),

    sæt resultatet indeholder : Hej

    Alice, Anderson, ingeniør, 46.75Ted , Anderson, Designer, 38.00Bob , Clark , Internt , 15.00Fred , Johnson, programmør, 32.25Bob , Smith , Kontorassistent , 23.50Carol , Smith , Manager , 42,50

    Brug absolutte ( int række) funktion til at indstille markøren til en bestemt række i resultatet . En positiv værdi for rækken parameter flytte markøren fremad fra før starten af ​​resultatet sæt . En negativ værdi for rækken parameter flytte markøren frem fra slutningen af resultatet set : Hej

    rs.absolute (3), String fn = rs.getString ( " first_name ") String ln = rs . getString ( " last_name ") System.out.println ( fn + "" + ln )

    rs.absolute (5), String fn = rs.getString ( " first_name ") String ln = rs . getString ( " last_name ") System.out.println ( fn + "" + ln )

    rs.absolute (-1 ), String fn = rs.getString ( " first_name "); String ln = rs.getString ( " last_name ") System.out.println ( fn + "" + ln )

    rs.absolute ( -3 ), String fn = rs.getString ( " first_name "); String ln = rs.getString ( " last_name ") System.out.println ( fn + "" + ln )

    print udsagn ovenstående output : Hej

    Bob ClarkBob SmithCarol SmithFred Johnson < br >

    Videre relative brug ( int række) for at flytte markøren frem eller tilbage i forhold til den aktuelle position. Markøren blev efterladt placeret ved den fjerde registrering af resultatet sæt . Flyt det fremad to rækker , så tilbagestående fire rækker:

    rs.relative (2) , fn = rs.getString ( " first_name ") ln = rs.getString ( " last_name "); System.out . println (fn + "" + ln )

    rs.relative (-4 ), fn = rs.getString ( " first_name ") ln = rs.getString ( " last_name "); System.out . println (fn + "" + ln )

    print udsagn i ovenstående kode output : Hej

    Carol SmithTed Anderson
    Ændring af Results
    < br >

    ændre indholdet af et resultat sæt via ResultSet opdateringsservere funktioner. Brug updateString (String columnLabel , String x ) for at ændre alle poster, der matcher " Bob " i " first_name " kolonnen til " Robert ". Brug beforeFirst () funktionen til at nulstille markøren til før begyndelsen af resultatet indstillet, så du kan gå gennem den opdaterede resultatet sæt og udskrive de nye værdier :

    String query = "SELECT * FROM folk" ; ResultSet rs = st.executeQuery (forespørgsel ),

    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 ( " last_name " ) ; System.out.println ( fn + "" + ln );}

    følgende resultater udskrives : Hej

    Robert SmithTed AndersonFred JohnsonAlice AndersonRobert ClarkCarol Smith
    håndtering fejl

    Mange af ResultSet funktioner smide en SQLException . Bedste praksis dikterer kastet fejl bør fanges og håndteres. SQLException budskab kan være meget nyttige i debugging forbindelse og forespørgsel fejl. inddæmmes din forbindelse og forespørgslen kode i try-catch blokke

    try { String url = " jdbc : mysql ://localhost /ansatte"; . Connection conn = DriverManager.getConnection ( url , " brugernavn" , "password" ), Erklæring st = conn . createStatement ();

    String query = "SELECT first_name , last_name FROM folk " ResultSet rs = st.executeQuery (forespørgsel ),

    while ( rs.next ( )) { String fn = rs.getString ( " first_name ") String ln = rs.getString ( " last_name ") System.out.println ( fn + "" + ln );}} catch ( SQLException ex ) { System.out.println ( ex.getMessage ()); }
    Clean Up

    ResultSet objekt lukkes automatisk , når sætningsobjekt bruges til at skabe det er tæt i lukket et ResultSet . objekt vil automatisk frigøre ressourcer Tving et ResultSet objekt til at frigive alle de JDBC og database ressource det holde ved at kalde den tætte () funktion Luk ResultSet objekt , rs , fra ovenstående eksempler : . .

    rs.close ( )

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan pakkes en APK for en Android 
    ·Sådan Fjern scripttags i Mootools XHR 
    ·Sådan Tillad Java til at skrive filer i Windows 
    ·Hvad er JDBC Abstraction 
    ·Hvordan Brug Combo Box Med Netbeans GUI 
    ·Hvordan man kompilerer i Java 
    ·Java Spring Vs . Struts 
    ·Fordelene ved at bruge JSP og Servlets 
    ·Java Game Development Tools 
    ·Sådan Upload filer med JSP 
      Anbefalede Artikler
    ·Sådan Læs den sidste linje i en fil i Python 
    ·Java byte kode Reverse Engineering 
    ·Sådan konvertere et resultat Indstil til kommaseparere…
    ·Sådan Tile en baggrund i HTML 
    ·Ulempe Struts 
    ·Sådan konfigureres PHP for en ekstern database Access 
    ·Sådan Konverter ikke-ASCII tegn i Python 
    ·Sådan Lær SQL Stored Procedures 
    ·Sådan oprettes en matrix af sekventielle numre i Ruby 
    ·GNU & C + + til computere 
    Copyright © Computer Viden http://www.computerdk.com