| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Java >> Content
    ResultSet JDBC Exemple
    La Java Database Connectivity ( JDBC ) Application Programmer Interface (API) fournit des classes pour la connexion et l'accès aux données tabulaires , y compris les bases de données relationnelles. La classe ResultSet fournit des méthodes pour récupérer , la navigation et la manipulation des résultats de requête de base de données . Exemple Environnement

    Dans les exemples suivants , vous connecter à une base de données nommée « personnel», une table unique dans cette base de données nommée «peuple» contenant trois colonnes : " prenom ", " last_name ", " titre »et« salaire ». Votre table contient les enregistrements suivants:

    Bob Smith , greffier , 23.50Ted , Anderson, Designer, 38.00Fred , Johnson, programmeur , 32.25Alice , Anderson , ingénieur , 46.75Bob , Clark , stagiaire , 15.00Carol , Smith , gestionnaire, 42.50
    interroger la base

    créer une connexion de base de données et créer un objet Statement en appelant la fonction de createStatement () de notre objet Connection.
    < p > Chaîne url = " jdbc: mysql ://localhost /personnel " ; Connection conn = DriverManager.getConnection (url, "username" , "password" ) ; Déclaration st = conn.createStatement ();

    Créer une chaîne de requête contenant une requête déclaration


    requête SQL string valide = " SELECT prenom , last_name de personnes »; .

    Créer un objet ResultSet en utilisant l'objet Statement pour exécuter la requête à la base de données .

    ResultSet rs = st.executeQuery ( query);

    l'objet ResultSet , rs , contient maintenant les résultats de la requête : le " prenom " et colonnes " last_name " pour chaque enregistrement le tableau «people» .
    Accès aux résultats de la requête

    l'objet ResultSet a un curseur , qui ne initialement pointez sur un dossier. First () fonction de ResultSet appeler pour déplacer le curseur sur le premier record détenu par l'objet ResultSet. Fonctions GET ResultSet permettent d'accéder aux contenus de chaque colonne en utilisant le nom de la colonne de la table de base de données . Utilisez getString (String columnLabel ) pour récupérer le contenu de la VARCHAR colonnes " prenom " et

    rs.first " nom_famille . " (); Cordes fn = rs.getString ( " prenom "); cordes ln = rs . getString ( " last_name "); System.out.println (ln + "," + fn) ;

    La dernière ligne ci-dessus impressions :

    Smith, Bob

    last () fonction de ResultSet appeler pour déplacer le curseur sur le dernier record détenu par l'objet ResultSet

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

    La dernière ligne ci-dessus impressions :

    Smith, Carol
    Stepping Grâce à la Query Results

    Typiquement, vous voudrez accéder à tous les résultats retournés par la requête. Next () fonction de ResultSet déplace le curseur vers l'avant à l'enregistrement suivant . Lorsque le curseur est déplacé au-delà de la fin du jeu de résultats, l' ) fonction suivante ( renvoie NULL , ce qui vous permet d'utiliser la valeur de retour d'échapper à une boucle while

    Déclaration st = conn.createStatement (). ; String query = "SELECT * FROM personnes où salaire > 30" ; ResultSet rs = st.executeQuery ( query);

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

    tandis que les étapes de parcourir chaque dossier dans le jeu de résultats et impressions : fonction précédente () de

    Ted AndersonFred JohnsonAlice AndersonCarol Smith &

    ResultSet déplace le curseur vers l'arrière d'un enregistrement dans le jeu de résultats, et renvoie NULL lorsque le curseur s'est déplacé avant le premier enregistrement . Cela vous permet de marcher à reculons à travers l'ensemble de résultats et d'utiliser la valeur de retour de la fonction précédente () pour échapper à une boucle while. En reprenant l'exemple ci-dessus, le curseur a été positionné à gauche après le dernier enregistrement dans le jeu de résultats. Utilisez le précédent ( de marche) de fonction en arrière dans les résultats de la requête , l'impression du titre et colonnes de salaire de chaque enregistrement. Utilisez getFloat (String columnLabel ) la fonction de ResultSet pour accéder au contenu de la colonne FLOAT «salaire» :

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

    tandis que les étapes de la boucle arrière dans chaque enregistrement dans le jeu de résultats et impressions :

    directeur 42.50Engineer $ $ $ 46.75Programmer 32.25Designer 38,00 $
    Random Access navigation

    ResultSet offre des fonctions pour déplacer le curseur arbitrairement par les enregistrements dans un jeu de résultats. Récupérer tous les enregistrements contenus dans la table «peuple» , triées par le " last_name " puis " prenom " colonnes:

    Déclaration st = conn.createStatement () ; String query = "SELECT * FROM personnes afin de nom_famille , prenom " ; ResultSet rs = st.executeQuery ( query);

    Le jeu de résultats contient:

    Alice, Anderson , ingénieur , 46.75Ted , Anderson, designer, 38.00Bob , Clark , stagiaire , 15.00Fred , Johnson, programmeur , 32.25Bob , Smith , greffier , 23.50Carol , Smith , gestionnaire, 42.50

    Utilisez la fonction absolue (int row) pour placer le curseur sur une ligne spécifique dans le jeu de résultats. Une valeur positive pour le paramètre de ligne pour déplacer le curseur vers l'avant depuis avant le début de l'ensemble de résultats . Une valeur négative pour le paramètre de ligne va déplacer le curseur vers l'arrière à partir de la fin du jeu de résultats :

    rs.absolute (3); cordes fn = rs.getString ( " prenom "); cordes ln = rs . getString ( " last_name "); System.out.println (fn + "" + ln) ;

    rs.absolute (5); cordes fn = rs.getString ( " prenom "); cordes ln = rs . getString ( " last_name "); System.out.println (fn + "" + ln) ;

    rs.absolute (-1) ; cordes fn = rs.getString ( " prenom "); cordes ln = rs.getString ( " last_name "); System.out.println (fn + "" + ln) ;

    rs.absolute (-3) ; cordes fn = rs.getString ( " prenom "); chaîne ln = rs.getString ( " last_name "); System.out.println (fn + "" + ln) ;

    Les états d'impression ci-dessus sortie :

    Bob ClarkBob SmithCarol SmithFred Johnson

    continue , utilisez relative ( int row) pour déplacer le curseur vers l'arrière ou vers l'avant par rapport à la position actuelle. Le curseur a été laissé placé à la quatrième enregistrement de l'ensemble des résultats . Faire avancer deux rangées , puis en arrière quatre lignes:

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

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

    les états d'impression dans la sortie du code ci-dessus :

    Carol Anderson SmithTed
    Modifier les résultats

    Modifier le contenu d'un jeu de résultats à l'aide des fonctions de mise à jour de ResultSet . Utilisez updateString (String columnLabel , String x ) pour changer tous les enregistrements correspondants "Bob" dans la colonne " prenom " à " Robert ". Utilisez la fonction beforeFirst () pour réinitialiser le curseur à avant le début du jeu de résultats si vous pouvez marcher à travers l'ensemble des résultats mis à jour et imprimer les nouvelles valeurs :

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

    while ( rs.next ()) {String fn = rs.getString ( " prenom "); if ( fn.equals ( "Bob" ) { rs.updateString ( " prenom ", " Robert" );}} rs.beforeFirst (); while ( rs.next ()) {String fn = rs.getString ( " prenom "); cordes ln = rs.getString ( " last_name " ) ; System.out.println (fn + "" + ln) ; }

    Les résultats suivants sont imprimés :

    Robert SmithTed AndersonFred JohnsonAlice AndersonRobert ClarkCarol Smith
    Gestion des erreurs

    Beaucoup des fonctions de ResultSet lancer une SQLException . meilleure pratique dicte erreurs générées doivent être attrapés et manipulés . le message de SQLException peut être très utile pour le débogage des erreurs de connexion et de requête . Contenir votre connexion et le code de la requête en try-catch blocs

    try {String url = " jdbc: mysql ://localhost /personnel " ; . Connection conn = DriverManager.getConnection (url, "username" , "password" ); Déclaration st = conn . createStatement ();

    String query = " SELECT prenom , nom_famille de personnes »; ResultSet rs = st.executeQuery ( query);

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

    un objet ResultSet se ferme automatiquement lorsque l'objet Statement utilisé pour créer il est proche lorsqu'il est fermé, un ResultSet. objet publiera automatiquement les ressources de forcer un objet ResultSet pour libérer toutes les ressources JDBC et base de données qu'il détient en appelant la fonction close () Fermez l'objet ResultSet , rs , à partir des exemples ci-dessus : . .

    rs.close ( ) ;

    Previous :

    next :
      articles connexes
    ·Développement de jeux en Java 
    ·Le codage Java pour la somme de deux nombres 
    ·Quel est statique en Java 
    ·Les avantages de printemps sur Struts 
    ·Comment écrire une méthode en Java 
    ·Comment écrire des programmes Java 
    ·Comment créer des documents XML en utilisant JDOM 
    ·Comment savoir si une police est à espacement fixe en …
    ·Android App développement Tutorial 
    ·Comment vérifier si ResultSet est nul 
      articles en vedette
    ·Comment faire pour intégrer Java DB dans NetBeans 
    ·Comment faire pour installer Perl DBD- ODBC sur AIX 
    ·Comment utiliser l'élément SPAN Avec Embed CSS 
    ·Comment télécharger une image avec PHP 
    ·Comment éditer des programmes en Visual Basic 
    ·Microsoft Visual Basic Tutorial 
    ·Comment utiliser OLE Avec Visual C 
    ·Comment faire pour installer DBD- MySQL pour PPM 
    ·Comment: PHP click tracking pixels 
    ·Comment passer des données entre des documents Word en…
    Copyright © Connaissances Informatiques http://fr.wingwit.com