Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Java Programming >> Content
JDBC ResultSet Voorbeeld
De Java Database Connectivity ( JDBC ) Application Programmer Interface ( API ) biedt lessen voor de aansluiting op en de toegang tot gegevens in tabelvorm , waaronder relationele databases . De ResultSet klasse biedt methoden voor het ophalen , het navigeren en manipuleren database query resultaten . Voorbeeld Milieu

In de volgende voorbeelden , zal u verbinding met een database genaamd " personeel ", een enkele tafel binnen die database genaamd " mensen " met drie kolommen : " voornaam " , " achternaam " , " titel , " en " loon . " Uw tabel bevat de volgende gegevens :

Bob
, Smith , Clerk , 23.50Ted , Anderson , Ontwerper , 38.00Fred , Johnson , Programmeur , 32.25Alice , Anderson , Ingenieur , 46.75Bob , Clark , Intern , 15.00Carol , Smith, Manager , 42.50
Query de Database

Maak een database verbinding en maak een Statement-object door te bellen createStatement onze Connection object ( ) -functie .

String url = " jdbc : mysql ://localhost /personeel " ; Connection conn = DriverManager.getConnection ( url , " gebruikersnaam " , " wachtwoord" ) ; Verklaring st = conn.createStatement ( ) ;

maken een query string met een geldige SQL-query statement

String vraag
= " SELECT voornaam, achternaam FROM mensen " ; .

Maak een ResultSet object met behulp van de verklaring object om de query uit te voeren naar de database .

ResultSet rs = st.executeQuery (query ) ;

de ResultSet object , rs , bevat nu de resultaten van de query : de " voornaam " en " achternaam " kolommen voor elke record in de "mensen" tafel .
Toegang tot de Queryresultaten

de ResultSet object een cursor , die aanvankelijk niet wijzen op enige record. Eerst bellen ( )-functie ResultSet 's om de cursor naar de eerste record in handen van de ResultSet object . Ophaalfuncties ResultSet de toegang tot de inhoud van elke kolom in naam kolom van de databasetabel . Gebruik getString ( String columnLabel ) om de inhoud van de VARCHAR kolommen ' voornaam ' en ' achternaam '.

Rs.first
( ) ophalen ; String fn = rs.getString ( " voornaam " ) ; String ln = rs . getString ( " achternaam " ) ; System.out.println ( ln + " , " + fn ) ;

De laatste regel hierboven afgedrukt :

Smith
, Bob

Bel laatste ( )-functie ResultSet 's om de cursor te verplaatsen naar het laatste record in handen van de ResultSet object

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

De laatste regel hierboven afgedrukt :

Smith
, Carol
Stepping via de queryresultaten

Meestal zal u toegang wilt krijgen tot alle geretourneerd door de query resultaten . Next ( )-functie ResultSet 's verplaatst de cursor naar het volgende record. Wanneer de cursor wordt verplaatst voorbij het einde van de resultaatset , de volgende ( ) functie retourneert NULL , zodat u de return waarde te gebruiken om te ontsnappen uit een while loop

Verklaring st = conn.createStatement ( ) op . ; String query = "SELECT * FROM mensen waar loon > 30 " ; ResultSet rs = st.executeQuery (query ) ;

terwijl ( rs.next ( ) ) { String fn = rs.getString ( " voornaam " ) ; String ln = rs.getString ( " achternaam " ) ; System.out.println (fn + " " + ln ) ; }

de while lus doorloopt elke record in de resultaat set , en prenten : vorige ( ) functie

Ted AndersonFred JohnsonAlice AndersonCarol Smith

ResultSet 's
verplaatst de cursor achterwaarts een record in de resultaat set , en retourneert NULL als de cursor vóór de eerste record is verhuisd . Dit stelt u in staat om terug te lopen door de resultaatset en gebruik de return waarde van de vorige ( ) functie om een ​​while lus ontsnappen . Voortzetting van het voorbeeld hierboven , is de cursor links geplaatst na het laatste record in de resultaatset . Gebruik de vorige ( ) functie wandeling achteruit door de resultaten van de query , het afdrukken van de titel en de loon- kolommen van elke record . Gebruik getFloat ( String columnLabel ) functie ResultSet 's om toegang te krijgen tot de inhoud van de kolom FLOAT " loon " :

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

de while lus stappen achteruit door elk record in de resultaat set , en prenten :

Manager $ 42.50Engineer $ 46.75Programmer $ 32.25Designer $ 38,00
Random Access Navigatie

ResultSet
biedt functies voor de cursor willekeurig bewegen door de records in een resultaat set . Ophalen van alle records die door de "mensen" tafel , gesorteerd op de " achternaam " en vervolgens " voornaam " kolommen :

Verklaring st
= conn.createStatement ( ) ; String query = "SELECT * FROM mensen om door last_name , first_name " ; ResultSet rs = st.executeQuery (query ) ;

Het instellen resultaat bevat :

Alice
, Anderson , Ingenieur , 46.75Ted , Anderson , Ontwerper , 38.00Bob , Clark , Intern , 15.00Fred , Johnson , Programmeur , 32.25Bob , Smith , Clerk , 23.50Carol , Smith , Manager , 42.50

Gebruik de absolute ( int rij) functie om de cursor instellen dat een bepaalde rij in de resultaat set . Een positieve waarde voor de parameter rij zal de cursor naar voren verplaatsen van voor het begin van de resultaatset . Een negatieve waarde voor de parameter rij zal de cursor naar achteren vanaf het einde van de resultaatset te verplaatsen :

rs.absolute
( 3 ) ; String fn = rs.getString ( " voornaam " ) ; String ln = rs . getString ( " achternaam " ) ; System.out.println (fn + " " + ln ) ;

rs.absolute
( 5 ) ; String fn = rs.getString ( " voornaam " ) ; String ln = rs . getString ( " achternaam " ) ; System.out.println (fn + " " + ln ) ;

rs.absolute
( -1 ) ; String fn = rs.getString ( " voornaam " ) ; String ln = rs.getString ( " achternaam " ) ; System.out.println (fn + " " + ln ) ;

rs.absolute
( -3 ) ; String fn = rs.getString ( " voornaam " ) ; String ln = rs.getString ( " achternaam " ) ; System.out.println (fn + " " + ln ) ;

De print statements bovenstaande uitvoer :

Bob ClarkBob SmithCarol SmithFred Johnson
< br >

Voortzetting , gebruiken relatief ( int rij) om de cursor vooruit of achteruit ten opzichte van de huidige positie te verplaatsen . De cursor werd gelaten gepositioneerd op de vierde verslag van het resultaat set . Verplaatsen het naar twee rijen , dan naar achteren vier rijen :

rs.relative
( 2 ) ; fn = rs.getString ( " voornaam " ) ; ln = rs.getString ( " achternaam " ) ; System.out . println (fn + " " + ln ) ;

rs.relative
( -4 ) ; fn = rs.getString ( " voornaam " ) ; ln = rs.getString ( " achternaam " ) ; System.out . println (fn + " " + ln ) ;

de print uitspraken in de bovenstaande code uitgang :

Carol SmithTed Anderson
wijzigen van de Resultaten
< br >

Wijzig de inhoud van een resultaat set met updatefuncties ResultSet 's . Gebruik updateString ( String columnLabel , String x ) om alle records matching " Bob " in de " voornaam " kolom te veranderen " Robert . " Gebruik de beforeFirst ( ) functie om de cursor terug te zetten naar vóór het begin van het resultaat te stellen , zodat u kunt wandelen door de bijgewerkte resultaat set en print de nieuwe waarden :

String vraag
= "SELECT * FROM mensen " ; ResultSet rs = st.executeQuery (query ) ;

terwijl ( rs.next ( ) ) { String fn = rs.getString ( " voornaam " ) if ( fn.equals ( " Bob " ) { rs.updateString ( " voornaam " , " Robert " ) ; } } rs.beforeFirst ( ) , terwijl ( rs.next ( ) ) { String fn = rs.getString ( " voornaam " ) ; String ln = rs.getString ( " achternaam " ) System.out.println ( fn + " + ln " ) ; }

De volgende resultaten worden afgedrukt :

Robert SmithTed AndersonFred JohnsonAlice AndersonRobert ClarkCarol Smith
Oplossen van fouten

Veel van de functies ResultSet afstand een SQLException . Best practice dicteert gegooid fouten moeten worden gevangen en behandeld . SQLException 's boodschap kan zeer nuttig zijn bij het debuggen verbinding en query- fouten . Beperk uw verbinding en query- code in try-catch blokken

try
{ String url = " jdbc : mysql ://localhost /personeel " ; . Connection conn = DriverManager.getConnection ( url , " gebruikersnaam " , " wachtwoord" ) ; Verklaring st = conn . createStatement ( ) ;

String vraag
= " SELECT voornaam, achternaam FROM mensen " ; ResultSet rs = st.executeQuery (query ) ;

terwijl ( rs.next ( ) ) { String fn = rs.getString ( " voornaam " ) ; String ln = rs.getString ( " achternaam " ) ; System.out.println (fn + " " + ln ) ; } } catch ( SQLException ex ) { System.err.println ( ex.getMessage ( ) ) ; }
Clean Up

een ResultSet object wordt automatisch gesloten wanneer het Statement-object gebruikt om te creëren is het dicht bij gesloten , een ResultSet . object automatisch middelen vrij Dwing een ResultSet object om alle JDBC en database resource te houden vrij te maken door te bellen naar de close ( ) functie Sluit de ResultSet object , rs , uit de bovenstaande voorbeelden : . .

RS.Close
( ) ;

Previous: Next:
  Java Programming
·Netbeans IDE 6.1 Mobile Tutori…
·Hoe je Java API documentatie d…
·Hoe je Java Vectors Gebruik 
·Thread Beperkingen in Java 
·Hoe maak je een JApplet Get In…
·Hoe te Piramides in Java Draw 
·Hoe verwijder ik een apostrof …
·Wat is een Select Case in Visu…
·Hoe te Registratieformulieren …
  Related Articles
MySQL JDBC Tutorials 
Hoe kan ik een voorbeeld van een PHP Sea…
NetBeans JDBC MySQL Tutorial 
Hoe te Rijen Van ResultSet Ophalen voor …
Hoe maak je een JDBC Driver Test 
Een tutorial over SQL Server in JDBC 
Hoe om te bepalen of Empty ResultSet was…
Hoe je JDBC schrijven Met behulp van Ecl…
Hoe maak je een ResultSet Toon Met JSP 
  Programmering Articles
·Hoe schrijf ik een programma in Programm…
·Hoe de ID van een object in JQuery Krijg…
·Hoe maak je een Keystore creëren in Jav…
·Hoe om gegevens van Access- Met behulp v…
·Hoe maak je een wachtwoord in VBS Script…
·Hoe de gegevens die Overloop de afmeting…
·Python recursieve functies 
·Hoe te Tabel Auto Increments Maak in MyS…
·Wat is het verschil tussen XSL & XSD ? 
Copyright © Computer Kennis http://www.nldit.com