Retour au cours

Semaine 1 : Accès aux données (DAO)

Comment une application parle à sa base de données

Objectifs de la semaine

À la fin de cette semaine, vous saurez créer une table avec sa clé primaire, importer un fichier .sql dans PostgreSQL, brancher un programme Java sur la base avec le pilote JDBC, et écrire votre premier objet d'accès aux données (DAO).

Déroulement du cours

  1. Créer une table et sa clé primaire : la brique de base d'une base de données relationnelle.
  2. Importer un fichier .sql : monter la base confiserie à partir du script fourni.
  3. Utiliser le pilote : ajouter le pilote JDBC PostgreSQL au projet Java et ouvrir une connexion.
  4. Programmer un DAO : isoler l'accès aux données dans une classe dédiée, comme le veut la bonne architecture.
La série SQL Semaine 1 : 1 diaporama sur les 10 de la série

Voir toute la série SQL

Notes de cours

Premier contact : se connecter et interroger

Le squelette minimal d'une connexion JDBC vers la base confiserie :

Class.forName("org.postgresql.Driver");
Connection connexion = DriverManager.getConnection(
        "jdbc:postgresql://localhost:5433/confiserie",
        "postgres", "testtest");

Statement requete = connexion.createStatement();
ResultSet curseur = requete.executeQuery("SELECT * FROM chocolat");

while (curseur.next()) {
    System.out.println("Nom : " + curseur.getString("nom"));
}

L'exemple complet est dans les ressources (CodeRequeteSQL.java), ainsi qu'un DAO complet à étudier (RobotDAO.java).

Énoncé : votre première confiserie branchée

  1. Monter la base : téléchargez Confiserie.zip, créez la base confiserie dans PostgreSQL et importez le script .sql fourni.
  2. Brancher Java : créez un projet Java, ajoutez le pilote postgresql-42.7.1.jar au chemin de compilation, puis reproduisez le premier contact ci-dessus : affichez tous les chocolats dans la console.
  3. Écrire votre DAO : en vous inspirant de RobotDAO.java, écrivez une classe ChocolatDAO avec une méthode listerChocolats() qui retourne la liste des chocolats sous forme d'objets.
  4. Défi bonus : ajoutez trouverChocolatParId(int id) avec un PreparedStatement.

Remise : votre code source et une capture d'écran de la console. Les modalités précises (plateforme et date) seront annoncées en classe.

Atelier : le projet École

Le choix A du Labo Laborathèque : une application JavaFX en modèle-vue-contrôleur qui affiche la liste des étudiants. Le projet de départ affiche des étudiants inventés : votre travail est de les remplacer par ceux de la base de données, avec un DAO comme celui de la confiserie.

  1. Monter la base : créez la base ecole dans PostgreSQL avec une table etudiant (colonnes id, prenom, nom) et ajoutez-y quelques rangées.
  2. Ouvrir le projet : téléchargez Ecole.zip, importez-le dans Eclipse et ajoutez le pilote JDBC au chemin de compilation, comme à l'étape 3 du déroulement.
  3. Écrire le DAO : dans un paquetage donnee, créez EtudiantDAO avec listerEtudiants() : connexion JDBC, SELECT id, prenom, nom FROM etudiant, puis une List<Etudiant> en retour. Le code complet est dans les diapositives.
  4. Tester dans la console : dans App.java, appelez listerEtudiants() et affichez chaque étudiant avec System.out.println.
  5. Brancher la vue : dans initialiser() du contrôleur, remplacez la liste inventée par le résultat du DAO et passez-la à VueEcole.getInstance().afficherEtudiants(etudiants).
La table etudiant dans pgAdmin, avec les colonnes id, prenom et nom
La table etudiant attendue par le projet.
Le port dans les exemples (5432 ou 5433) dépend de votre installation de PostgreSQL : trouver le vôtre fait partie de l'exercice.
Atelier Étudiant : le projet École 6 diapositives - EtudiantDAO et l'affichage JavaFX

Le projet

Projet École départ, sans DAO avec le DAO, avant les requêtes préparées EtudiantDAO.java (lecture seule, version singleton) BaseDeDonnees.java (singleton de connexion)

Ressources

Confiserie.zip (base et projet) Pilote JDBC PostgreSQL 42.7.1 CodeRequeteSQL.java (exemple) RobotDAO.java (DAO complet) Tutoriel : installer PostgreSQL sous Linux

Évaluation : le Labo Laborathèque (10%)

L'atelier Capsules évalué de la semaine 1, dans son espace dédié : réalisé en classe le 25 août 2026, à remettre le 1er septembre 2026. Projet de départ, présentation web et liens de démarrage vous y attendent.

Page de l'atelier Laborathèque Présentation Labora-Thèque (version web) Laboratheque.zip (projet de départ) Drive de l'activité