Vous êtes sur la page 1sur 19

PARTIE8: CONNECTION AVEC

UNE BASE DE DONNEES


(JDBC)

GINFO3
INTRODUCTION

• JDBC est l'acronyme de Java DataBase Connectivity et désigne une API définie par
Sun pour permettre un accès aux bases de données avec Java.
• Les classes de JDBC version 1.0 sont regroupées dans le package java.sql et sont
incluses dans le JDK à partir de sa version 1.1. La version 2.0 de cette API est incluse
dans la version 1.2 du JDK.
• Pour pouvoir utiliser JDBC, il faut un pilote qui est spécifique à la base de données à
laquelle on veut accéder.
• Avec le JDK, Sun fournit un pilote qui permet l'accès aux bases de données via
ODBC.
API JDBC

• L’API JDBC utilise des pilotes JDBC pour se connecter à la


base de données.
• Il existe quatre types de pilotes JDBC :
1.JDBC-ODBC bridge driver
2.Native-API driver (Pilote partiellement Java)
3.Network Protocol driver (Pilote entièrement Java)
4.Thin driver (Pilote entièrement Java)
POURQUOI LE JDBC
• Avant JDBC, ODBC API était l’API de base de données pour se connecter et exécuter la
requête avec la base de données.
• Mais, l’API ODBC utilise le pilote ODBC qui est écrit en langage C (c’est-à-dire
dépendant de la plate-forme et non sécurisé).
• C’est pourquoi java a défini sa propre API (JDBC API) qui utilise des pilotes JDBC
(écrits en langage java).
• Nous pouvons utiliser l’api JDBC pour gérer la base de données à l’aide du programme
java et effectuer les activités suivantes:
Se connecter à la base de données
Exécuter des requêtes et mettre à jour des instructions dans la base de données
récupérer le résultat reçu de la base de données.
FACILITIES DE JDBC

Comment connecter l’application java avec la base de données oracle


et mysql en utilisant JDBC?
Quelle est la différence entre l’interface statement et preparedstatement
?
• comment interroger une base de données à l’aide de JDBC ?
LE PACKAGE JAVA.SQL

IL CONTIENT 8 INTERFACES :
• STATEMENT
• CALLABLESTATEMENT, PREPAREDSTATEMENT
• DATABASEMETADATA, RESULTSETMETADATA
• RESULTSET
• CONNECTION
• DRIVER
ARCHITECTURE

MySQ
L
CONNECTION D’UNE APPLICATION JAVA AVEC
UNE BASE DE DONNEES MYSQL
CONNECTION D’UNE APPLICATION JAVA AVEC
UNE BASE DE DONNEES MYSQL
• Pour connecter l’application java à la base de données MySQL, nous devons suivre 4 étapes
(connaître les informations suivantes pour la base de données mysql):
• DRIVER CLASS: La classe de pilote pour la base de données MySQL est:
“COM.MYSQL.JDBC.DRIVER”
• CONNECTION URL: L’URL de connexion pour la base de données MySQL est
"JDBC:MYSQL://LOCALHOST:3306/SUPERMARCHE","ROOT","");

Jdbc: l’api,
Mysql: la base de données,
Localhost: nom du serveur sur lequel mysql est en cours d’exécution (vous pouvez utiliser l’adresse IP),
3306 : le numéro de port
Supermarche: nom de la base de données.
USERNAME: Nom d’utilisateur par défaut de la base de données mysql est root.
• PASSWORD: Mot de passe donné par l’utilisateur au moment de l’installation de la base de
données mysql.
CONNECTION AVEC UNE BASE DE DONNEES

• On aura besoin de ce qui suit:


• Java Development Kit (JDK)
• MySQL/Oracle database
• Eclipse
MYSQL JDBC DRIVER (CONNECTOR/J)
ETAPES DE CONNECTION AVEC UNE BASE
DONNEES MYSQL

1. Création de base de données MySql par phpMyAdmin(WampServer)


2. Création et ajout des données sur les tables
3. Gardez la base de données ouverte
4. Télécharger le driver MySql jdbc
5. Créez un projet Java
6. Cliquez sur properties pour ajouter le driver
7. Créez votre classe de connexion
8. Affichez le contenu des tables
9. Ajouter/supprimer des données
10. Fermez la connexion
CODE DE CONNECTION: EXEMPLE1
public class Exemple1 {
public static void main(String args[]){
1. Enregistrer le Driver
try{
Class.forName("com.mysql.jdbc.Driver"); 2. Créer l’objet de connexion
Connection con=DriverManager.getConnection( et etablir la connection avec
bd MySQL
"jdbc:mysql://localhost:3306/Etissalat","root","");

Statement stmt=con.createStatement();
3. Créer l’objet Statement
ResultSet rs=stmt.executeQuery("select * from Client");
4. Exécuter la requête
while(rs.next())
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
con.close();
5. Fermeture d’objet connection
}
catch(Exception e){ System.out.println(e);}
} }
STATEMENT INTERFACE
• L’interface Statement fournit des méthodes pour exécuter des requêtes avec la base
de données.
• L’interface Statement est une fabrique de ResultSet, c’est-à-dire qu’elle fournit une
méthode d’usine pour obtenir l’objet de ResultSet.
• Les méthodes importantes de l’interface Statement sont les suivantes :
• public ResultSet executeQuery(String sql): est utilisé pour exécuter la requête SELECT. Elle
renvoie l’objet de ResultSet.
• public int executeUpdate(String sql): est utilisé pour exécuter une requête spécifiée, il peut être
créer, déposer, insérer, mettre à jour, supprimer, etc.
• public boolean execute(String sql): est utilisé pour exécuter des requêtes qui peuvent renvoyer
plusieurs résultats.
• public int[] executeBatch(): est utilisé pour exécuter un lot de commandes.
Voir Pratique8/Connection/Exemple2
ResultSet INTERFACE: EXEMPLE3
• L’objet de ResultSet conserve un curseur pointant vers une ligne d’une table. Initialement, le curseur pointe
avant la première ligne. Méthodes couramment utilisées de l’interface
public boolean next(): ResultSet
permet de déplacer le curseur sur la ligne suivante à partir de la position actuelle.
public boolean previous(): permet de déplacer le curseur sur la ligne précédente à partir de la position actuelle.
public boolean first(): Permet de déplacer le curseur sur la première ligne de l’objet jeu de résultats.
public boolean last(): permet de déplacer le curseur sur la dernière ligne de l’objet jeu de résultats.
public boolean absolute(int permet de déplacer le curseur sur le numéro de ligne spécifié dans l’objet ResultSet.
row):
public boolean relative(int est utilisé pour déplacer le curseur sur le numéro de ligne relatif dans l’objet ResultSet, il
row): peut être positif ou négatif.
public int getInt(int est utilisé pour renvoyer les données de l’index de colonne spécifié de la ligne courante
columnIndex): sous la forme int.
public int getInt(String est utilisé pour renvoyer les données du nom de colonne spécifié de la ligne courante sous
columnName): la forme int.
public String getString(int est utilisé pour renvoyer les données de l’index de colonne spécifié de la ligne courante
columnIndex): sous forme de chaîne.
public String est utilisé pour renvoyer les données du nom de colonne spécifié de la ligne courante sous
getString(String forme de chaîne.
columnName):
PREPARED STATEMENT INTERFACE
• L’interface PreparedStatement est une sous-interface de Statement.
• Elle est utilisé pour exécuter une requête paramétrée.
• Exemple:
String sql="insert into Client values(?,?,?,?,?,?,?)";

• Le paramètre (?) est passé pour les valeurs.


• Sa valeur sera définie en appelant les méthodes setter de PreparedStatement comme suit:
stmt.setInt(1,101);
stmt.setString(2,"Rami");

• Pourquoi utiliser PreparedStatement ?


• Améliorer les performances de l’application: la requête n’est compilée qu’une seule fois
LES METHODES DE PREPAREDSTATEMENT: EXEMPLE4

public void setInt(int paramIndex, int value) Définit la valeur entière sur l’index de paramètre
donné.

public void setString(int paramIndex, String définit la valeur String sur l’index de paramètre
value) donné.

public void setFloat(int paramIndex, float value) Définit la valeur float sur l’index de paramètre donné.

public void setDouble(int paramIndex, double Définit la valeur double sur l’index de paramètre
value) donné.

public int executeUpdate() Exécute la requête. Il est utilisé pour créer, déposer,
insérer, mettre à jour, supprimer, etc.

public ResultSet executeQuery() Exécute la requête de sélection. Il retourne une


instance de ResultSet.
INTERFACE JAVA ResultSetMetaData

• Les métadonnées signifient des données sur les données


• Obtenir des informations supplémentaires à partir des données.
• Vous pouvez obtenir les métadonnées d’une table telles que
• le nombre total de colonnes,
• le nom de colonne,
• le type de colonne, etc.,

• l’interface ResultSetMetaData est utile car elle fournit des méthodes pour
obtenir des métadonnées de l’objet ResultSet.
Voir Exemple 5
LES MÉTHODES DE L’INTERFACE ResultSetMetaData

Methode Description
public int getColumnCount()throws it returns the total number of columns in
SQLException the ResultSet object.

public String getColumnName(int it returns the column name of the specified


index)throws SQLException column index.
public String getColumnTypeName(int it returns the column type name for the
index)throws SQLException specified index.
public String getTableName(int it returns the table name for the specified
index)throws SQLException column index.

Vous aimerez peut-être aussi