Vous êtes sur la page 1sur 11

Plan

 Présentation
 Java DataBase Connectivity(JDBC)
 Connexion à une base de données
 Les requêtes de sélection
 Les requêtes de mise à jour
 Déconnexion
 SQLException
 Instruction SQL paramétrée
SQLEXCEPTION
La gestion des exceptions vous permet de gérer des conditions exceptionnel
les telles que des
erreurs définies par le programme de manière contrôlée.
JDBC permet de connaitre les avertissements et les exceptions générées
par la base de données lors de l'exécution de requête.
La gestion des exceptions JDBC est très similaire à la gestion des
exceptions Java, mais pour JDBC, l'exception la plus commune que vous
allez traiter est java.sql.SQLException.
Méthodes SQLException :
Une exception SQLException peut survenir à la fois dans le pilote et dans la
base de données. Lorsqu'une telle exception se produit, un objet de type
SQLException sera transmis à la clause catch.
La classe SQLException représente les erreurs émises par la base de
données. Elle contient trois attributs qui permettent de préciser l'erreur :
message : contient une description de l'erreur
SQLState : code défini par les normes X/Open et SQL99
ErrorCode : le code d'erreur du fournisseur du pilote
Méthodes SQLException :

L'objet SQLException transmis dispose des méthodes suivantes


pour extraire des informations supplémentaires sur l'exception :
Méthode La description
getErrorCode() qui renvoie l’entier correspondant au “code
d’erreur ”(le code d’erreur propre à
L'objet SQLException transmis dispose des méthodes suivantes pour
l’ éditeur de la base de données, donc non
normalisé)
extraire des informations supplémentaires sur l'exception :

getSQLState() qui renvoie la chaîne de caractères


correspondant `a SQLSTATE (le code d’erreur
de la norme SQL)

getNextException() qui donne l’exception qui suit l’exception


courante dans le chaînage des exceptions

setNextException() qui permet d’ajouter l’exception passée en


paramètre au chaînage des exceptions. Cett
e méthode n’est normalement utilisée que
par les développeurs de drivers.
Les instructions paramétrées –
PreparedStatement
Qu’est-ce qu’un PreparedStatement ?
L'interface PreparedStatement étend Statement et représente une instruction
paramétrée. Cette interface diffère de Statement sur deux points principaux :

les instances de PreparedStatement contiennent une instruction SQL déjà compilée.


D'où le terme prepared. Cela améliore notamment les performances si cette instruction
doit être appelée de nombreuses fois ;
les instructions SQL des instances de PreparedStatement contiennent un ou plusieurs
paramètres d'entrée, non spécifiés lors de la création de l'instruction. Ces paramètres
sont représentés par des points d'interrogation (?). Ces paramètres doivent être
spécifiés avant l'exécution.

L'exécution des PreparedStatement est identique à celle des simples Statement, à la


différence près qu'il n'y a pas d'argument aux méthodes executeXXX.
Comment créer un PreparedStatement
L'instanciation de PreparedStatement se fait à partir de la classe Connection,
grâce aux méthodes prepareStatement. Voici quelques exemples :

Une fois l'instance de PreparedStatement récupérée, il ne reste plus qu'à définir la valeur des paramètres
et à l'exécuter.
Comment passer/vider les paramètres
du PreparedStatement(IN parameters) ?
Le passage des paramètres d'entrée des PreparedStatement se fait grâce à l'ensemble
des méthodes setXXX. Il est important de connaître les correspondances entre les ty
pes SQL et les types java

Pour vider un paramètre, on peut utiliser la méthode setXXX correspondante, cela a pour effet d'écraser la
valeur passée précédemment. Pour vider tous les paramètres, vous pouvez utiliser la méthode
clearParameters().
Comment passer des paramètres avec la
méthode setObject ?
La méthode setObject permet de passer n'importe quel type d'argument.
Cette méthode, en plus de l'index du paramètre et de la valeur de celui-ci,
peut prendre en argument un entier définissant le type SQL.

L'objet Java, passé comme valeur, sera converti dans le type SQL indiqué
avant d'être envoyé au SGBD. Si ce dernier implémente SQLData, le driver
appellera la méthode writeSQL pour l'écrire dans la base de données.
Comment passer des paramètres avec la
méthode setObject ?
Exemple:

Une dernière méthode setObject prend en argument un entier définissant le nombre de


chiffres après la virgule pour Types.NUMERIC et Types.DECIMAL. En cas de types
incompatibles, une SQLException sera levée lors de l'exécution.

Vous aimerez peut-être aussi