Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 V nasledujúcich príkladoch , budete pripojení k databáze s názvom " zamestnanci " , jedna tabuľka v tejto databáze s názvom " ľudia " obsahujúce tri stĺpce : " FIRST_NAME " , " last_name " , " titul , " a " mzda " . Váš tabuľka obsahuje nasledujúce záznamy : 
 
 Bob , Smith , riaditeľ , 23.50Ted , Anderson , Designer , 38.00Fred , Johnson , programátor , 32.25Alice , Anderson , inžinier , 46.75Bob , Clark , Interná , 15.00Carol , smith , manažér , 42.50 
 Query Database 
 
 Vytvorenie databázy pripojenie a vytvoriť vyhlásenie objekt volaním createStatement naše spojenie objektu ( ) funkcie . 
 
 String url = " jdbc : mysql ://localhost /zamestnancov " ; Connection conn = DriverManager.getConnection ( url , " meno " , " heslo " ) ; Vyhlásenie st = conn.createStatement ( ) ; 
 
 Vytvoriť reťazec dotazu obsahujúce platný príkaz SQL dotazu 
 
 String query = " SELECT FIRST_NAME , last_name od ľudí " ; . 
 
 Vytvorte ResultSet objektu pomocou príkazu objekt na vykonanie dotazu do databázy . 
 
 výsledný rs = st.executeQuery ( query ) ; 
 
 ResultSet objektu , rs , teraz obsahuje výsledky dotazu : " FIRST_NAME " a " last_name " stĺpce pre každý záznam v " ľudia " stôl . 
 Prístup k dotazu Výsledky 
 
 ResultSet objekt má kurzor , ktorý spočiatku neukazuje žiadne záznamy . Volajte prvá funkcia výsledný súbor je ( ) presuňte kurzor na prvý záznam v držbe ResultSet objekte . Get funkcie výsledný poskytujú prístup k obsahu jednotlivých stĺpcov pomocou názvu stĺpca z tabuľky databázy . " . Last_name " Použiť getString ( String columnLabel ) načítať obsah VARCHAR stĺpca " FIRST_NAME " a 
 
 rs.first ( ) ; String fn = rs.getString ( " FIRST_NAME " ) ; String ln = rs . getString ( " last_name " ) ; System.out.println ( ln + " , " + fn ) ; 
 
 posledný riadok vyššie tlačí : 
 
 Smith , Bob 
 
 volanie posledného funkciu výsledný súbor je ( ) presuňte kurzor na posledný záznam v držbe ResultSet objekte 
 
 rs.last ( ) ; . fn = rs.getString ( " FIRST_NAME " ) ; ln = rs.getString ( " last_name " ) ; System.out.println ( ln + " , " + fn ) ; 
 
 posledný riadok vyššie výtlačkov : 
 
 Smith , Carol 
 Stepping prostredníctvom výsledkov dotazu 
 
Typicky , budete chcieť , aby prístup k všetkým výsledky vrátené dotazom . Ďalšie funkcie výsledný súbor je ( ) presunie kurzor vpred na ďalší záznam . Keď je kurzor presunutý za koniec sady výsledkov , funkcia next ( ) vracia NULL , čo vám umožní použiť návratovú hodnotu uniknúť z cyklu while klipart
 Prehlásenie ulice = conn.createStatement ( ) . ; string query = " SELECT * FROM ľudí tam , kde mzda > 30 " ; výsledný rs = st.executeQuery ( query ) ; 
 
 while ( rs.next ( ) ) { string fn = rs.getString ( " FIRST_NAME " ) , String ln = rs.getString ( " last_name " ) ; System.out.println ( fn + " " + ln ) ; } 
 
 kroky , zatiaľ čo slučka cez každý záznam v sade výsledkov , a tlačí : predchádzajúce funkcie 
 
 Ted AndersonFred JohnsonAlice AndersonCarol Smith 
 
 výsledný súbor je ( ) presunie kurzor späť jeden záznam v sade výsledkov , a vráti hodnotu NULL , ak sa kurzor presunul pred prvým záznamu . To vám umožní prejsť dozadu sade výsledkov a používať návratovú hodnotu z funkcie predchádzajúci ( ) , aby sa vyhli cyklu while . Pokračovaním vyššie uvedený príklad , kurzor ostal umiestnený za posledný záznam v sade výsledkov . Použite predchádzajúcej funkcie ( ) , chôdza pospiatky skrze výsledkov dotazu , tlač na titul a mzdové stĺpce z každého záznamu . Funkcia výsledný súbor je getFloat ( String columnLabel ) použiť pre prístup k obsahu FLOAT stĺpci " mzdy " : 
 
 while ( rs.previous ( ) ) { String t = rs.getString ( " title " ) ; int w = rs.getFloat ( " mzda " ) ; System.out.println ( fn + " $ " + ln ) ; } 
 
 kroky , zatiaľ čo slučka dozadu cez každý záznam v sade výsledkov , a tlačí : 
 
 Manažér $ 42.50Engineer $ 46.75Programmer $ 32.25Designer 38,00 dolárov 
 Random Access Navigácia 
 
 ResultSet ponúka funkcie pre pohyb kurzora ľubovoľne medzi záznamami v sade výsledkov . Načítať všetky záznamy obsiahnuté v " ľudovej " tabuľky , zoradené podľa " last_name " a potom " FIRST_NAME " stĺpca : 
 
 Vyhlásenie st = conn.createStatement ( ) ; String query = " SELECT * FROM ľudí, aby o last_name , FIRST_NAME " ; výsledný rs = st.executeQuery ( query ) ; 
 
 Výsledná sada obsahuje : 
 
 Alice , Anderson , inžinier , 46.75Ted , Anderson , Designer , 38.00Bob , Clark , Intern , 15.00Fred , Johnson , programátor , 32.25Bob , Smith , riaditeľ , 23.50Carol , Smith , manažér , 42.50 
 
 Použite funkciu absolútna ( int row ) nastavte kurzor na konkrétny riadok vo výslednej sade . Kladná hodnota parametra riadku sa presuniete kurzor dopredu z obdobia pred začiatkom výsledkovej sady . Záporná hodnota parametra riadku sa presuniete kurzor späť od konca sady výsledkov : 
 
 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 ) ; 
 
 Tlačové vyhlásenie uvedené výstupu : 
 
 Bob ClarkBob SmithCarol SmithFred Johnson 
 
 Pokračovanie , použite relatívna ( int riadok ) pre pohyb kurzora dopredu alebo dozadu vzhľadom k aktuálnej pozícii . Kurzor zostal umiestnený na štvrtom záznamu sady výsledkov . Pohyb dopredu dva riadky , potom spätné štyri riadky : 
 
 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 ) ; 
 
 Tlačové vyhlásenie vo vyššie uvedenom kóde výstupu : 
 
 Carol SmithTed Anderson 
 Úprava výsledky 
 
 
 Upraviť obsah sady výsledkov pomocou aktualizačný funkcie výsledný súbor je . Použite updateString ( String columnLabel , String x ) zmeniť všetky záznamy zodpovedajúce " Bob " v " FIRST_NAME " stĺpci " Robert . " Použite funkciu beforeFirst ( ) obnoviť kurzor pred začiatkom množinu výsledkov , takže si môžete prejsť aktualizované výsledok nastaviť a vytlačiť nové hodnoty : 
 
 String query = " SELECT * FROM ľudí " ; výsledný rs = st.executeQuery ( query ) ; 
 
 while ( rs.next ( ) ) { String fn = rs.getString ( " FIRST_NAME " ) ; if ( fn.equals ( " Bob " ) { rs.updateString ( " FIRST_NAME " , " Robert " ) ; } } rs.beforeFirst ( ) , zatiaľ čo ( rs.next ( ) ) { String fn = rs.getString ( " FIRST_NAME " ) ; String ln = rs.getString ( " last_name " ) ; System.out.println ( fn + " " + ln ) ; } 
 
 Nasledujúce výsledky sú tlačené : 
 
 Robert SmithTed AndersonFred JohnsonAlice AndersonRobert ClarkCarol Smith 
 manipulácia chyby 
 
 Mnoho funkcií výsledný súbor je hodiť SQL . Najlepšia prax velí hádzať chyby by mali byť zachytené a spracované . SQLEXCEPTION posolstvo môže byť veľmi užitočné pri ladení spojenia a otázok chyby . Obsahujú pripojenie a kód dotazu na try - catch blokov 
 
 try { String url = " jdbc : mysql ://localhost /zamestnanca " . Spojenie conn = DriverManager.getConnection ( url , " meno " , " heslo " ) ; Vyhlásenie st = conn . createStatement ( ) ; 
 
 String query = " SELECT FIRST_NAME , last_name od ľudí " ; výsledný rs = st.executeQuery ( query ) ; 
 
 while ( rs.next ( ) ) { String fn = rs.getString ( " FIRST_NAME " ) ; String ln = rs.getString ( " last_name " ) ; System.out.println ( fn + " " + ln ) ; } } catch ( SQLException ex ) { System.err.println ( ex.getMessage ( ) ) ; . } 
 Clean Up 
 
 ResultSet objektu je automaticky ukončená po vyhlásení objekt použitý na vytvorenie je blízko Keď uzavretý , ResultSet objekt sa automaticky uvoľní zdroje Vynútiť ResultSet objektu uvoľniť všetky JDBC a databázy zdrojov je držať volaním close ( ) funkcia Zatvorte ResultSet objektu , RS , z vyššie uvedených príkladov : .. 
 
 rs.Close ( ) ;