Un pilote JDBC agit comme un adaptateur entre l'application Java et le système de base de données. Sans ce pilote, Java ne pourrait pas communiquer directement avec la base de données. Chaque constructeur de base de données fournit son propre pilote JDBC conforme aux spécifications. Sun Microsystems (acquis par Oracle) a créé JDBC pour normaliser l'accès aux bases de données. Les développeurs travaillent uniquement avec l'API JDBC, tandis que les fabricants de bases de données implémentent les pilotes spécifiques. ### Configuration requise
Pour utiliser JDBC avec MySQL, vous devez importer deux packages : ``` java.sql javax.sql
Vous devez également télécharger le pilote JDBC approprié (par exemple, mysql-connector-java-5.1.47.jar). ### Exemple de connexion à une base de données
Voici un exemple pratique démontrant comment établir une connexion et exécuter une requête : ```
public class ConnexionBaseDonnees {
public static void main(String[] args) {
try {
// Chargement du pilote JDBC
Class.forName("com.mysql.jdbc.Driver");
// Définition des paramètres de connexion
String urlBase = "jdbc:mysql://localhost:3306/monprojet?useUnicode=true&characterEncoding=utf8&useSSL=false";
String utilisateur = "root";
String motDePasse = "monmdp";
// Établissement de la connexion
Connection connexion = DriverManager.getConnection(urlBase, utilisateur, motDePasse);
// Création d'un objet pour exécuter les requêtes
Statement instructeur = connexion.createStatement();
// Exécution d'une requête SELECT
String requete = "SELECT id, nom, email, date_creation FROM utilisateurs";
ResultSet resultats = instructeur.executeQuery(requete);
// Parcours des résultats
while (resultats.next()) {
System.out.println("ID : " + resultats.getInt("id"));
System.out.println("Nom : " + resultats.getString("nom"));
System.out.println("Email : " + resultats.getString("email"));
System.out.println("Date : " + resultats.getDate("date_creation"));
}
// Fermeture des ressources
resultats.close();
instructeur.close();
connexion.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Analyse de l'URL de connexion
L'URL de connexion suit ce format : ``` protocole:sous-protocole://adresse_serveur:port/nom_base?paramètres
Exemple : `jdbc:mysql://localhost:3306/monprojet?useUnicode=true&characterEncoding=utf8&useSSL=false`### Rôle des principales interfaces
**Connection** : Représente la session avec la base de données. Elle permet de : - Gérer les transactions avec `commit()` et `rollback()`
- Contrôle autmoatique des transactions avec `setAutoCommit(boolean)`
- Créer des objets Statement
**Statement** : Exécute des requêtes SQL statiques. Trois méthodes principales : - `executeQuery(String sql)` : Pour les requêtes SELECT
- `executeUpdate(String sql)` : Pour INSERT, UPDATE, DELETE
- `execute(String sql)` : Pour tout type de requête
**ResultSet** : Contient les données retournées par une requête. Navigation : - `next()` : Déplace le curseur vers la ligne suivante
- `beforeFirst()` : Déplace au début
- `afterLast()` : Déplace à la fin
### Bonnes pratiques
Il est essentiel de toujours fermer les resosurces (Connection, Statement, ResultSet) dans un bloc finally ou d'utiliser try-with-resources pour éviter les fuites de mémoire et les problèmes de ressources.</div>