18
pages
Catalan
Documents
Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres
18
pages
Catalan
Documents
Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres
Publié par
Langue
Catalan
Introduction à JD BC
Accès au x bases de
données en Java
E ric C ariou
Université de P au et des P ays de l' Adour
Département Inform atique
E ric.C ariou@univ-pau.fr
1Introduction
J DB C : Jav a Data B ase C onnectivity
Fr amework permettant l'a ccès aux b ases de
données relationnelles dans u n programme Jav a
In dépendament du typ e d e la b ase u tilisée (my SQL,
Oracle, Postgres .. .)
Seule la phase de connexion au SG B DR change
Permet de f aire tout type d e re quêtes
Sélection de données dans des tables
Créat ion de tables et insertion d'éléments dans les tables
G estion des transactions
Packages : java.sql e t javax.sql
2Principes généraux d'accès à une BDD
Première étape
Préciser le ty pe d e d river q ue l' on v eut u tiliser
Driv er permet de gérer l'accès à un type particulier de SG B D
Deuxième é tape
Récupérer u n o bjet « C onnection » e n s 'identifiant au près
du S G B D e t e n p récisant l a b ase u tilisée
E tapes suivantes
A p artir d e l a c onnexion, c réer u n « sta tement » (état)
correspondant à un e re quête p articulière
E xécuter c e s tatement a u n iveau d u S G B D
Fermer l e s tatement
Dernière étape
3
Se d éconnecter d e la b ase e n fe rmant l a c onnexionConnexion au SGBD
C lasse java.sql.D riverManager
G estion du contrôle et de la c onnexion a u S G BD
Méthodes p rincipales
static void r egisterDriver(D river driver)
E nregistre l e driver (obj et driver) pour u n type de S G B D
particulier
Le driver est dépendant du SG B D utilisé
static Connection g etConnection(
String u rl, String u ser, S tring password)
Crée une connexion permettant d'utiliser une b ase
url : identification de la base considérée sur le S G B D
Fo rmat de l'URL est dépendant du SG G B utilisé
user : nom de l'utilisateur qui se connecte à la base
4
password : mot de passe de l'utilisateurGestion des c onnexions
Inter face java.sql.Connection
Préparation de l'ex écution d'ins tructions s ur la
base, 2 ty pes
Instruction sim ple : classe Statement
On exécute directement et une fois l'action sur la base
Instruction param étrée : classe PreparedStatement
L'instruction est générique, des champs sont non remplis
Permet une pré- compilation de l'instruction optimisant les
performances
Pour chaque exécution, on précise les champs manquants
Pour ces 2 instructions, 2 types d' ordres possibles
Update : mise à jour du contenu de la base
5
Query : consulation (avec un select) des données de la baseGestion des connexions
Méthodes p rincipales d e Connection
Statement createStatement()
Retourne un état permettant de réaliser une i nstruction simple
PreparedStatement p repareStatement(
String ordre)
Retourne un état permettant de réaliser une i nstruction
paramétrée et pré- compilée pour un o rdre ordre
Dan s l'ordre, les champs libres (au nombre quelconque) sont
précisés p ar des « ? »
E x : ' 'select n om from c lients where ville=?''
Lors de l'ex écution de l'ordre, on précisera la v aleur du cham p
void close()
Fer me la connexion avec le SG B D
6Instruction simple
C lasse Statement
ResultSet executeQuery(String o rdre)
E xécute un ordre de type SE LE C T sur la base
Retourne un o bjet de type ResultSet contenant tous les
résultats de la requête
int executeUpdate(S tring ordre)
E xécute un ordre de type INSE RT, UPDA TE , ou DE LE TE
void close()
Fer me l'état
7Instruction paramétrée
C lasse PreparedStatement
A vant d' exécuter l' ordre, on rem plit les cham ps avec
void set[Type](int index, [Type] val)
ème
Remplit le cham p en i position définie par index avec l a
valeur val de ty pe [Type]
[Type] peut être : S tring, int, float, long ...
E x : void setString(int index, String val)
ResultSet executeQuery()
E xécute un ordre de type SE LE C T sur la base
Retourne un objet de type ResultSet contenant tous les
résultats de la requête
int executeUpdate()
E xécute un ordre de type INSE RT, UPDA TE , ou DE LE TE
8Lecture des résultats
C lasse ResultSet
C ontient le s ré sultats d'une r equête SE LE CT
Plusieurs l ignes contenant plusieurs colonnes
On y accède ligne par ligne puis val eur p ar valeur dans la ligne
C hangements de li gne
boolean next()
Se place à la ligne suivante s'il y en a une
Retourne true si le déplacement a été fait, false s'il n'y avait pas d'autre
ligne
boolean previous()
Se place à la ligne précédente s'il y en a une
Retourne true si le déplacement a été fait, false s'il n'y avait pas de
ligne précédente
boolean absolute(int index)
Se place à la ligne numérotée index
9
Retourne true si le déplacement a été fait, false sinonLecture des résultats
C lasse ResultSet
A ccès aux c olonnes/d onnées dans u ne l igne
[type] get[Type](int c ol)
Retourne le contenu de la colonne col dont l'élément est de type
[type] avec [type] p ouvant ê tre String, int, float, boolean ...
E x : String getString(int col)
Fermeture du ResultSet
void close()
10