Partager via


Utilisation d'une procédure stockée avec un nombre de mises à jour

Pour modifier les données d'une base de données SQL Server à l'aide d'une procédure stockée, le pilote JDBC Microsoft SQL Server 2005 fournit la classe SQLServerCallableStatement. La classe SQLServerCallableStatement permet d'appeler des procédures stockées qui modifient les données contenues dans la base de données et retournent le nombre de lignes affectées, également appelé nombre de mises à jour.

Une fois l'appel à la procédure stockée configuré à l'aide de la classe SQLServerCallableStatement, vous pouvez appeler la procédure stockée à l'aide de la méthode execute ou de la méthode executeUpdate. La méthode executeUpdate retourne une valeur int contenant le nombre de lignes affectées par la procédure stockée, mais la méthode execute ne le fait pas. Si vous utilisez la méthode execute et souhaitez obtenir le nombre de lignes affectées, vous pouvez appeler la méthode getUpdateCount après l'exécution de la procédure stockée.

NoteRemarque :

Si vous souhaitez que le pilote JDBC retourne tous les nombres de mises à jour, y compris les nombres de mises à jour retournées par des déclencheurs qui ont pu se déclencher, définissez la propriété de chaîne de connexion lastUpdateCount sur « false ». Pour plus d'informations sur la propriété lastUpdateCount, consultez Définition des propriétés de connexion.

Par exemple, créez la table et la procédure stockée suivantes dans l'exemple de base de données SQL Server 2005 AdventureWorks :

CREATE TABLE TestTable 
   (Col1 int IDENTITY, 
    Col2 varchar(50), 
    Col3 int);

CREATE PROCEDURE UpdateTestTable
   @Col2 varchar(50),
   @Col3 int
AS
BEGIN
   UPDATE TestTable
   SET Col2 = @Col2, Col3 = @Col3
END;

Dans l'exemple suivant, une connexion ouverte à l'exemple de base de données AdventureWorks est transmise à la fonction, la méthode execute permet d'appeler la procédure stockée UpdateTestTable, puis la méthode getUpdateCount permet de retourner le nombre de lignes affectées par la procédure stockée.

public static void executeUpdateStoredProcedure(Connection con) {
   try {
      CallableStatement cstmt = con.prepareCall("{call dbo.UpdateTestTable(?, ?)}");
      cstmt.setString(1, "A");
      cstmt.setInt(2, 100);
      cstmt.execute();
      int count = cstmt.getUpdateCount();
      cstmt.close();

      System.out.println("ROWS AFFECTED: " + count);
   }
   catch (Exception e) {
      e.printStackTrace();
   }
}

Voir aussi

Autres ressources

Utilisation d'instructions avec des procédures stockées