Sunteți pe pagina 1din 17

Langage JAVA

Pof: R. EL AYACHI
Dpartement dinformatique
Facult des Sciences et Techniques
Bni Mellal

Chapitre 7: Gestion des


bases de donnes
1. Introduction
2. Etapes de lexploitation
des BD

2
Pof: R. EL AYACHI

1. Introduction
ODBC (Open DataBase Connectivity): une interface
dveloppe par Microsoft pour uniformiser les accs
aux bases de donnes.
Existence de plusieurs pilotes ODBC (sous Windows):

Applicati
on

Pilote
ODBC

3
Pof: R. EL AYACHI

Base de
donnes

1. Introduction
JDBC (Java DataBase Connectivity): une interface
cre par Sun Microsystems qui permette aux
applications java daccder aux sources de donnes
par le biais dune interface
Interfac commune.
Applicati
on

e JDBCODBC

Interfac
e ODBC

Base de
donnes

4
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
En gnral, on trouve les tapes suivantes (pour une
application java utilisant linterface JDBC):
1. Connexion la base de donnes
2. mission de requtes SQL vers la base
3. Rception et traitement des rsultats de ces
requtes
4. Fermeture de la connexion

5
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD

Exemple dutilisation de ces tapes sur une base de


donnes ACCESS appele ARTICLES et ayant la
structure suivante:
Nom
Type
Code

Code de larticle sur 4 caractres

Nom

Nom de larticle (chaine de


caractres)

Prix

Prix de larticle (rel)

Stock_actu

Stock actuel de larticle (entier)

Stock_mini

Stock minimum de larticle (entier)

Cette base ACCESS est dfinie comme source de


donnesutilisateur dans le gestionnaire de bases
ODBC.

6
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
1. Connexion la base de
donnes:
La connexion seffectue laide de la mthode de classe
suivante :
Connection DriverManager.getConnection(String URL, String
id, String mdp)
Avec
DriverManager: classe Java dtenant la liste des pilotes
disponibles pour
lapplication
Connection: classe Java tablissant un lien entre lapplication
et la base
URL: nom identifiant la base de donnes. Il a la forme
suivante :
jdbc:nom_du_pilote:nom_de_la_source;
7
Pof:
EL AYACHI
id:R.identit
de lutilisateur (login)

2. Etapes de lexploitation
des BD
Exempl
e:

Connection connexion=null;
URL base=...;
String id=...;
String mdp=...;
try{
connexion=DriverManager.getConnection(ba
se,id,mdp);
} catch (Exception e){
// traiter lexception
}

8
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
Pour charger de la classe java qui fera linterface avec
le pilote utilis (dans notre exemple pilote ODBC), il
faut utiliser la syntaxe suivante: Class.forName(String
nomClasse);
La classe faisant linterface avec les pilotes ODBC de
MS Windows sappelle sun.jdbc.odbc.JdbcOdbcDriver
Exempl
.
try{
e:
Class.forName(
sun.jdbc.odbc.JdbcOdbcDriver ) ;
} catch (Exception e){
// traiter lexception (classe inexistante)
}

Les classes ncessaires linterface JDBC se trouvent


dans le package java.sql. On crira donc en dbut de
programme :
9
Pof: R. EL AYACHI
import java.sql.*;

2. Etapes de lexploitation
des BD
2. Emission de requtes
vers la base:
Linterface JDBC permet lmission des requtes vers
la base et le traitement des rsultats obtenus.
SQL (Structured Query Language) est un langage de
requtes standardis pour les bases de donnes
relationnelles. On y distingue plusieurs types de
requtes :
Requtes dinterrogation de la base (SELECT)
Requtes de mise jour de la base (INSERT, DELETE,
UPDATE)
Requtes de cration/destruction de tables (CREATE,
DELETE)
10
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
a. Classe Statement:
Pour mettre une requte SQL vers une base
donnes, lapplication Java doit disposer dun objet
type Statement. Cet objet stockera le texte de
requte. Cet objet est ncessairement li
connexion en cours.

de
de
la
la

une mthode de la connexion tablie permet de crer les


objets Statement ncessaires lmission des requtes
SQL.
Si connexion est lobjet symbolisant la connexion avec la
base de donnes, un objet Statement est obtenu de la
faon suivante :
Statement requete=connexion.createStatement();
Une fois lobjet Statement est obtenu , les requtes SQL
11
peuvent
tre
mettre.
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
b.
Emettre
une
requte
dinterrogation:
Une requte dinterrogation a la syntaxe suivante :
select col1, col2,... from table1,
table2,...
where condition
order by expression
...

Le rsultat dun select est une table


Exempl
select nom from articles
e:
where stock_actu<stock_mini
order by nom

Pour excuter ce type de requte, la classe Statement


offre la mthode executeQuery :
ResultSet executeQuery(String requte)
o requte est le texte de la requte SELECT mettre.
12

Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
Exemple:
On suppose que connexion est lobjet symbolisant la
connexion avec la base de donnes
Statement s = connexion.createStatement();
ResultSet
rs = s.executeQuery(select nom from
articles
where
stock_actu<stock_mini );

13
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
c. Classe ResultSet (Rsultat dune requte
select):
Un objet de type ResultSet reprsente une table
(ensemble de lignes et de colonnes). A un moment
donn, on na accs qu une ligne de la table appele
ligne courante. Lors de la cration initiale du
ResultSet, la ligne courante est la ligne n 1 si le
ResultSet nest pas vide. Pour passer la ligne
suivante, la classe ResultSet dispose de la mthode
next() :
boolean next()
Cette mthode tente de passer la ligne suivante du
ResultSet et rend true si elle russit, false sinon. En cas de
russite, la ligne suivante devient la nouvelle ligne
courante. La ligne prcdente est perdue et on ne pourra
14
revenir en arrire pour la rcuprer.

Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
d. Emettre une requte de mise jour:
Un objet de type Statement permet de stocker les
requtes SQL. La mthode que cet objet utilise pour
mettre des requtes SQL de mise jour (INSERT,
UPDATE, DELETE) nest plus la mthode executeQuery
tudie
prcdemment
mais
la
mthode
executeUpdate :
int executeUpdate(String requte)
La diffrence est dans le rsultat : alors que
executeQuery renvoyait la table des rsultats
(ResultSet), executeUpdate renvoie le nombre de
lignes affectes par lopration de mise jour.
15
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
e. Emettre une requte SQL quelconque:
Lobjet Statement ncessaire lmission de requtes
SQL dispose dune mthode execute capable
dexcuter tout type de requte SQL :
boolean execute(String requte)
Le rsultat rendu est le boolen true si la requte a
rendu un ResultSet (executeQuery), false si elle a
rendu un nombre (executeUpdate). Le ResultSet
obtenu peut tre rcupr avec la mthode
getResultSet et le nombre de lignes mises jour, par
la mthode getUpdateCount. Ainsi on crira :

16
Pof: R. EL AYACHI

2. Etapes de lexploitation
des BD
Statement S=...;
ResultSet RS=...;
int nbLignes;
String requte=...;
// excution dune requte SQL
if (S.execute(requte)){
// on a un resultset
RS=S.getResultSet();
// exploitation du ResultSet
...
} else {
// ctait une requte de mise jour
nbLignes=S.getUpdateCount();
...
}

17
Pof: R. EL AYACHI

S-ar putea să vă placă și