Partie III
Langages et outils
318
© Éditions Eyrolles
Il n’est pas possible de paramétrer des instructions SQL du LDD (CREATE, ALTER…). Pour
résoudre ce problème, il faut construire dynamiquement la chaîne (String) qui contient l’instruction à l’aide de l’opérateur de concaténation Java (+). Cette chaîne sera ensuite l’unique
paramètre de la méthode prepareStatement.
Procédures cataloguées
L’interface CallableStatement permet d’appeler des sous-programmes (fonctions ou
procédures cataloguées), en passant d’éventuels paramètres en entrée et en en récupérant en
sortie. L’interface CallableStatement spécialise l’interface PreparedStatement. Les
paramètres d’entrée sont affectés par les méthodes setxxx. Les paramètres de sortie (définis
OUT au niveau du sous-programme) sont extraits à l’aide des méthodes getxxx. Ces états qui
permettent d’appeler des sous-programmes sont créés par la méthode prepareCall de
l’interface Connection, décrite ci-après :
CallableStatement prepareCall(String)
Le tableau suivant décompose le paramètre de cette méthode (deux écritures sont possibles).
Chaque paramètre est indiqué par un symbole « ? » :
Tableau 8-37 Insertion d’un enregistrement par un ordre préparé
Code Java
Commentaires
try { …
cx.setAutoCommit(false);
String ordreSQL =
"DELETE FROM Avion WHERE immat = ?";
Création d’un état préparé.
Passage du paramètre.
if (!
)
{ System.out.println("Enregistrement supprimé");
cx.commit(); }
Exécution de l’instruction.
Fermeture de l’état.
} catch(SQLException ex) { … }
Gestion des erreurs.
Web
PreparedStatement étatPréparé =
cx.prepareStatement(ordreSQL);
étatPréparé.setString(1, "F-NEW ");
étatPréparé.execute()
étatPréparé.close();
Tableau 8-38 Paramètre de prepareCall
Type du sous-programme
Paramètre
Fonction
{? = call nomFonction( [?, ?, ...] ) }
Procédure
{call nomProcédure( [?, ?, ...] ) }
Langages et outils
318
© Éditions Eyrolles
Il n’est pas possible de paramétrer des instructions SQL du LDD (CREATE, ALTER…). Pour
résoudre ce problème, il faut construire dynamiquement la chaîne (String) qui contient l’instruction à l’aide de l’opérateur de concaténation Java (+). Cette chaîne sera ensuite l’unique
paramètre de la méthode prepareStatement.
Procédures cataloguées
L’interface CallableStatement permet d’appeler des sous-programmes (fonctions ou
procédures cataloguées), en passant d’éventuels paramètres en entrée et en en récupérant en
sortie. L’interface CallableStatement spécialise l’interface PreparedStatement. Les
paramètres d’entrée sont affectés par les méthodes setxxx. Les paramètres de sortie (définis
OUT au niveau du sous-programme) sont extraits à l’aide des méthodes getxxx. Ces états qui
permettent d’appeler des sous-programmes sont créés par la méthode prepareCall de
l’interface Connection, décrite ci-après :
CallableStatement prepareCall(String)
Le tableau suivant décompose le paramètre de cette méthode (deux écritures sont possibles).
Chaque paramètre est indiqué par un symbole « ? » :
Tableau 8-37 Insertion d’un enregistrement par un ordre préparé
Code Java
Commentaires
try { …
cx.setAutoCommit(false);
String ordreSQL =
"DELETE FROM Avion WHERE immat = ?";
Création d’un état préparé.
Passage du paramètre.
if (!
)
{ System.out.println("Enregistrement supprimé");
cx.commit(); }
Exécution de l’instruction.
Fermeture de l’état.
} catch(SQLException ex) { … }
Gestion des erreurs.
Web
PreparedStatement étatPréparé =
cx.prepareStatement(ordreSQL);
étatPréparé.setString(1, "F-NEW ");
étatPréparé.execute()
étatPréparé.close();
Tableau 8-38 Paramètre de prepareCall
Type du sous-programme
Paramètre
Fonction
{? = call nomFonction( [?, ?, ...] ) }
Procédure
{call nomProcédure( [?, ?, ...] ) }
