Professional Documents
Culture Documents
Eric Cariou
Universit de Pau et des Pays de l'Adour Dpartement Informatique Eric.Cariou@univ-pau.fr
1
Introduction
JDBC : Java Data Base Connectivity Framework permettant l'accs aux bases de donnes relationnelles dans un programme Java
Indpendament du type de la base utilise (mySQL, Oracle, Postgres ...)
Seule la phase de connexion au SGBDR change Slection de donnes dans des tables Cration de tables et insertion d'lments dans les tables Gestion des transactions
Premire tape
Deuxime tape
Rcuprer un objet Connection en s'identifiant auprs du SGBD et en prcisant la base utilise A partir de la connexion, crer un statement (tat) correspondant une requte particulire Excuter ce statement au niveau du SGBD Fermer le statement Se dconnecter de la base en fermant la connexion
3
Etapes suivantes
Dernire tape
Connexion au SGBD
Classe java.sql.DriverManager
Gestion du contrle et de la connexion au SGBD static void registerDriver(Driver driver)
Mthodes principales
Enregistre le driver (objet driver) pour un type de SGBD particulier Le driver est dpendant du SGBD utilis
Cre une connexion permettant d'utiliser une base url : identification de la base considre sur le SGBD
user : nom de l'utilisateur qui se connecte la base password : mot de passe de l'utilisateur
On excute directement et une fois l'action sur la base L'instruction est gnrique, des champs sont non remplis Permet une pr-compilation de l'instruction optimisant les performances Pour chaque excution, on prcise les champs manquants Update : mise jour du contenu de la base Query : consulation (avec un select) des donnes de la base 5
Retourne un tat permettant de raliser une instruction paramtre et pr-compile pour un ordre ordre Dans l'ordre, les champs libres (au nombre quelconque) sont prciss par des ?
Ex : ''select nom from clients where ville=?'' Lors de l'excution de l'ordre, on prcisera la valeur du champ
void close()
Instruction simple
Classe Statement
ResultSet executeQuery(String ordre)
Excute un ordre de type SELECT sur la base Retourne un objet de type ResultSet contenant tous les rsultats de la requte Excute un ordre de type INSERT, UPDATE, ou DELETE Ferme l'tat
void close()
Instruction paramtre
Classe PreparedStatement
Avant d'excuter l'ordre, on remplit les champs avec
Remplit le champ en ime position dfinie par index avec la valeur val de type [Type] [Type] peut tre : String, int, float, long ... Ex : void setString(int index, String val)
ResultSet executeQuery()
Excute un ordre de type SELECT sur la base Retourne un objet de type ResultSet contenant tous les rsultats de la requte Excute un ordre de type INSERT, UPDATE, ou DELETE
int executeUpdate()
Classe ResultSet
Contient les rsultats d'une requte SELECT
Plusieurs lignes contenant plusieurs colonnes On y accde ligne par ligne puis valeur par valeur dans la ligne boolean next()
Changements de ligne
Se place la ligne suivante s'il y en a une Retourne true si le dplacement a t fait, false s'il n'y avait pas d'autre ligne Se place la ligne prcdente s'il y en a une Retourne true si le dplacement a t fait, false s'il n'y avait pas de ligne prcdente Se place la ligne numrote index Retourne true si le dplacement a t fait, false sinon
boolean previous()
Classe ResultSet
Accs aux colonnes/donnes dans une ligne [type] get[Type](int col)
Retourne le contenu de la colonne col dont l'lment est de type [type] avec [type] pouvant tre String, int, float, boolean ...
Fermeture du ResultSet
void close()
10
Exception SQLException
Plusieurs spcialisations sont dfinies (voir API) int getErrorCode() : le code de l'erreur renvoy par le SGBD (et dpendant du type du SGBD) SQLException getNextException() : si plusieurs exceptions sont chanes entre elles, retourne la suivante ou null s'il n'y en a pas String getSQLState() : retourne l'tat SQL associ l'exception 11
Exemple
Paramtres de la base
12
Exemple
13
Exemple
Exemple
Exemple
Exemple
Transaction
Fonctionnalit avance
Gestion des transactions Transaction
18