Semestre 2
Modules
Programmation
JDBC

JDBC

Java Database Connectivity (JDBC) est une API Java qui permet aux applications Java d'interagir avec les bases de données. Voici une vue d'ensemble de ses principaux composants et fonctionnalités :

  • DriverManager: Cette classe gère une liste de pilotes de base de données. Chaque pilote de base de données fournit une connexion avec une base de données particulière. DriverManager aide à choisir le bon pilote parmi les pilotes disponibles.

  • Connection: Cette interface avec tous les objets de connexion fournit une session entre l'application Java et la base de données. La connexion peut être utilisée pour créer des objets Statement, PreparedStatement et CallableStatement.

  • Statement: Il est utilisé pour exécuter une requête SQL statique et renvoyer les résultats qu'elle produit.

  • PreparedStatement: Cette interface étend l'interface Statement. Elle est utilisée pour exécuter des requêtes SQL précompilées. Elle peut accepter des paramètres à l'exécution, ce qui permet de prévenir les attaques par injection SQL.

  • CallableStatement: Cette interface étend l'interface PreparedStatement. Elle peut être utilisée pour exécuter des procédures stockées SQL.

  • ResultSet: Il représente un tableau de données de type table, généralement généré par l'exécution d'une instruction qui interroge la base de données.

  • ResultSetTableModel: Cette classe est une sous-classe interne de AbstractTableModel qui prend un ResultSet comme entrée et le transforme en une structure de données que le JTable peut afficher. Elle utilise également les métadonnées du ResultSet pour obtenir les noms des colonnes.

SQLException: Cette classe gère toute erreur survenue dans un programme JDBC.

Voici un exemple simple de connexion à une base de données et d'exécution d'une requête SQL :

import java.sql.*;
 
public class TestJDBC {
    public static void main(String[] args) {
        try {
            // Charger le pilote
            Class.forName("com.mysql.cj.jdbc.Driver");
 
            // Établir la connexion
            Connection con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/mydatabase", "user", "password");
 
            // Créer une déclaration
            Statement stmt = con.createStatement();
 
            // Exécuter la requête
            ResultSet rs = stmt.executeQuery("select * from mytable");
 
            // Parcourir le ResultSet
            while (rs.next()) {
                System.out.println(rs.getInt(1) + "  " + rs.getString(2));
            }
 
            // Fermer la connexion
            con.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

Dans cet exemple, nous nous connectons à une base de données MySQL locale, exécutons une requête pour obtenir toutes les données d'une table, puis parcourons le ResultSet pour imprimer chaque ligne de données.

Notez que JDBC permet également d'exécuter des mises à jour, des insertions et des suppressions de données, ainsi que des transactions avec plusieurs opérations et des opérations sur les métadonnées de la base de données. Pour la plupart de ces opérations, vous utiliserez les mêmes classes et interfaces que celles décrites ci-dessus.

Last updated on June 21, 2024