Exécuter des requêtes

Disponible

Introduction aux déclarations

Toutes les requêtes SQL peuvent être conditionnellement divisées en deux groupes :

  • Récupération de données - Celles-ci incluent l' instruction SELECT .
  • Modification des données - Celles-ci incluent les instructions INSERT , UPDATE et DELETE .

Pour le premier groupe, la méthode d'interface Statement qui nous est déjà familière est utilisée - executeQuery() . En principe, cette méthode est tout à fait suffisante pour commencer. Il couvre un très grand pourcentage de requêtes que vous devrez utiliser dans un travail réel.

Nous aborderons plus d'options plus tard, mais pour l'instant, je vous conseille de vous rappeler que si vous souhaitez simplement obtenir des données à partir d'une table, la méthode executeQuery () dans la grande majorité des cas sera le bon choix.

Pour le deuxième groupe de requêtes, vous devez utiliser une autre méthode de l'interface Statement - executeUpdate() . Contrairement à la méthode executeQuery() , qui renvoie un ResultSet, cette méthode renvoie un entier qui vous indique combien de lignes de la table ont été modifiées lors de l'exécution de votre requête .

Par exemple, vous pouvez supprimer toutes les lignes avec la déclaration d'employé DELETE FROM (soyez donc très prudent). Dans ce cas, la méthode executeUpdate() renverra le nombre de lignes supprimées. Dans certaines situations, connaître le nombre de lignes modifiées peut être utile pour créer des algorithmes permettant de travailler avec des données.

En principe, nous pouvons terminer cette question - nous avons déjà vu l'essentiel. Pour la récupération de données - executeQuery() . Pour modifier les données - executeUpdate() .

Obtenez le nombre d'utilisateurs dans la table des utilisateurs à l'aide de la méthode executeQuery() :


	ResultSet results = statement.executeQuery("SELECT Count(*) FROM user");
	results.next();
    int count = results.getInt(1);

exécuterMise à jour()

La méthode executeUpdate() est utilisée lorsque votre requête modifie quelque chose dans une table. Cela peut être n'importe quoi :

  • Instruction de mise à jour
  • Instruction INSÉRER
  • Instruction SUPPRIMER
  • Déclaration de PROCÉDURE D'APPEL

Cette méthode renvoie le nombre de lignes modifiées (ou supprimées).

Écrivons une demande qui augmentera le salaire de tous nos employés de 1000 roubles.


   int rowsCount = statement.executeUpdate("UPDATE  employee SET salary = salary+1000");

Après avoir exécuté ce code, il a renvoyé le numéro 6 sur ma table.Ma table avait 6 lignes. Toutes les lignes ont donc été modifiées.

exécuter()

Parfois, des situations peuvent survenir dans votre vie lorsque vous ne savez pas exactement quelle demande vous devez exécuter - une sélection ou un changement de données. Dans ce cas, les créateurs de JDBC lui ont ajouté une autre méthode générique - execute() .

Cette méthode peut être utilisée à la place des méthodes executeQuery() et executeUpdate() . Vous souvenez-vous en quoi ces méthodes différaient ? Droite. Type de résultat. Par conséquent, les créateurs de JDBC ont proposé une telle solution.

La méthode execute() renvoie un booléen. Si cette valeur est true , une demande d'extraction de données était en cours et vous devez appeler la méthode getResultSet() pour obtenir les données. Exemple:


    boolean hasResults = statement.execute("SELECT Count(*) FROM user");
    if ( hasResults ) {
        	ResultSet results =  statement.getResultSet();
        	results.next();
        	int count = results.getInt(1);
 	}

Si cette valeur est false , une demande de modification de données était en cours et vous devez appeler la méthode getUpdateCount() pour obtenir le nombre de lignes modifiées. Exemple:


    boolean hasResults = statement.execute("UPDATE  employee SET salary = salary+1000");
    if ( !hasResults ) {
      	int count = statement.getUpdateCount();
 	}

Écrivons une méthode qui affiche le résultat d'une requête :


	public void executeAndPrintSQLQuery(String sqlQuery) {
 
        boolean hasResults = statement.execute(sqlQuery);
        if ( hasResults ) {
 	          ResultSet results =  statement.getResultSet();
           	System.out.println(“Your request lines below:);
 
           	while (results.next()) {
 	                 Integer id = results.getInt(1);
     	             String name = results.getString(2);
                      System.out.println(results.getRow() + ". " + id + "\t"+ name);
  	        }
       }
 	  else {
            int count = statement.getUpdateCount();
        	System.out.println(“Number of name strings:+ count);
  	}
}

C'est ainsi que la méthode execute() est généralement utilisée dans la pratique.

Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires