Vous êtes sur la page 1sur 14

Cours 3

Contenu du cours :

" Accès à une base de données


" Exécution de requêtes et lectures de résultats
" Les méta-données
JDBC 2

L'API JDBC est utilisée pour


intéragir avec une base de données.
Privilèges
JDBC 4
Accès à une base de données en java.

Pour accéder à une base de données en java, nous devons réaliser


les étapes suivantes :

• Charger un pilote spécifique à la base de données.


• Obtenir une connexion avec la base de données (session).

• Obtenir un « Statement » qui permettra d'exécuter les requêtes SQL.


• Obtenir des « ResultSet » contenant les données de la table.

• Fermer la connexion à la base de données.

L'accès à une base de données


se fait toujours selon le même schéma.
import java.sql.*;

public class AfficherEmployes {


JDBC 5
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DATABASE_URL = "jdbc:mysql://localhost/ressources_humaines";
static final String USER = “user";
static final String PASS = “user";

try {
// Charger le pilote
Class.forName( JDBC_DRIVER );

// etablir la connection
connection = DriverManager.getConnection( DATABASE_URL, USER, PASS);
} // end try

catch ( ClassNotFoundException classNotFound ) {


System.err.prinln(“Impossible de charger le pilote”);
classNotFound.printStackTrace();
System.exit( 1 );
} // end catch

catch ( SQLException sqlException ){


System.err.prinln(“Connetion Impossible”);
sqlException.printStackTrace();
System.exit( 1 );
} // end catch
… Charger un pilote spécifique àla base de données
et obtenir une connexion à la base de données.
JDBC 6
Charger un pilote spécifique à la base de données
et obtenir une connexion à la base de données.
Pour charger un pilote spécifique à la base de données,
on utilise la méthode statique de la classe java.lang.Class :
Class.forName( <NomDeLaClasseDuPilote> );
Ex: Class.forName(“com.mysql.jdbc.Driver”);

Cette méthode peut lancer l'exception ClassNotFoundException si la classe


spécifiée n'est pas dans votre classpath.

Pour obtenir une connexion avec la base de données ,


on utlise la méthode statique de la classe java.sql.DriverManager :
DriverManager.getConnection( url, user, pwd )
DriverManager.getConnection( url)
Cette méthode prend en argument l'url de la base de données
Elle peut lancer l'exception SQLException en cas de problème.

Cette procédure permet de se connecter à


une base de donnée distante ou locale .
Classpath
• Deux manières pour spécifier où se trouve le driver

1. Au lancement du programme
java -classpath c:\drives\mysql-connector-java-5.1.7-bin.jar;. AfficherEmployes

2. Copier le driver dans le répertoire jre\lib\ext de votre jdk


(C:\Program Files\Java\jdk1.5.0_15\jre\lib\ext) et lancer
normalement le programme

java AfficherEmployes
JDBC 8
Obtenir un « Statement »
static final String REQUETE_SQL = "SELECT * FROM employes“;

Il nous faut obtenir un Objet de type Statement pour envoyer nos


requêtes SQL. Ces requêtes peuvent alors
nous rertourner un ResultSet.
JDBC 9
Obtenir un « Statement »

Pour obtenir un statement , il faut utiliser la méthode


connection.createStatement();
Cette méthode renvoie un objet java implémentant l'interface
java.sql.Statement

Cet objet peut alors être utilisé pour exécuter des requêtes SQL :
statement.executeQuery( <RequeteSQL sous forme de String> );
statement.executeUpdate( <RequeteSQL sous forme de String> );

Certaines requêtes renvoient un jeu de données : un java.sql.ResultSet.


Ce ResultSet sera utilisé pour lire les données...

Il nous faut obtenir un Objet de type Statement pour envoyer nos


requêtes SQL. Ces requêtes peuvent
alors rertourner un ResultSet.
JDBC 10
Manipulation des ResultSets
Il faut toujours
placer le
curseur sur le
premier
enregistrement
avant d’utiliser
un ResultSet

Ensuite on peut
parcourir notre
ensemble de
données

!!! Au début le curseur du ResultSet pointe sur l'enregistrement -1


!!!!
JDBC 11
Manipulation des ResultSets

Ces opérations
sont à risque

On utilise la
méthode
appropriée de
ResultSet pour
lire la donnée de
la colonne « i »

Il existe de nombreuses méthodes permettant de lire tous les


types de données primitifs dans la classe ResultSet.
JDBC 12
Les Meta Données

Les meta données sont des données sur les données.


Chaque ResultSet possède ses propres MetaDonnées.

Elles sont utilisées pour obtenir les noms des colonnes dans un ResultSet
ainsi que le type des données qui se trouvent dans chacune d'elles.

Obtention des
metaData.

Utilisation des
metaData.

Les méta données sont stockées dans un ResultSetMetaData.


JDBC 13
Les Meta Données

les metadonnées
renseignent sur le
type des données
dans chaque
colonne.

On peut
également obtenir
le type des
données sous
forme de chaîne.

On utilise les métadonnées pour connaître le type des données


dans chaque colonne du ResultSet.
Exécution

Vous aimerez peut-être aussi