Documente Academic
Documente Profesional
Documente Cultură
Pof: R. EL AYACHI
Dpartement dinformatique
Facult des Sciences et Techniques
Bni Mellal
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
Nom
Prix
Stock_actu
Stock_mini
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)
}
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
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
...
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