Le projet en bref
On part du projet Armada.zip, une application JavaFX dont la vue est déjà dessinée mais dont les données sont fausses ou absentes. Étape par étape, on la branche sur la base de données : la liste des escadrons, le détail d'un escadron, la sous-liste de ses vaisseaux, puis l'ajout et l'édition d'un vaisseau, et enfin la robustesse avec les requêtes préparées. Armada ressemble beaucoup au projet Marina vu en classe : un escadron est comme une flotte, un vaisseau est comme un bateau.
L'énoncé
Le diaporama du projet, à consulter en classe et à la maison : le processus, les trois livraisons, les écrans à obtenir, les questions SQL de la robustesse et les annexes (rappel DAO, Marina versus Armada).
Ouvrir l'énoncéPour démarrer
- Télécharger le point de départ : Armada.zip, à importer dans Eclipse comme projet existant.
- Garder Marina sous la main : le code de pratique Marina (flottes et bateaux) et son historique de commits montrent chaque étape, dans le même ordre que dans Armada.
- Créer la base de données : Armada utilise la base
armada, avec les tablesescadron(commeflotte) etvaisseau(commebateau). Les scriptsarmada.sqletvaisseau.sqlfont partie des livrables. - Publier sur GitHub : un commit à chaque étape, et une pré-release à chaque livraison (LIVRAISON_LISTES, LIVRAISON_EDITION), puis la release LIVRAISON_ROBUSTESSE.
Les livraisons
- Programmer la liste et le détail (5%) : remplacer la fausse liste d'escadrons par
EscadronDAO.listerEscadrons(), puis afficher l'escadron choisi avecdetaillerEscadron(id). On teste les données en log avant de les afficher. - Programmer la sous-liste (5%) - LIVRAISON_LISTES : afficher les vaisseaux de l'escadron avec
VaisseauDAO.listerVaisseauxParEscadron(id)etVueEscadron.afficherVaisseaux(). - Programmer l'ajout d'un vaisseau (5%) : navigation vers la page Ajouter, lecture du formulaire par le contrôleur, puis
ajouterVaisseaudans le DAO, d'abord avec un faux objet et sans requête préparée pour pouvoir loguer le SQL. - Programmer l'édition d'un vaisseau (5%) - LIVRAISON_EDITION : même démarche avec la page Éditer, qui reprend les données existantes, et
editerVaisseaudans le DAO. - Robustesse (5%) - LIVRAISON_ROBUSTESSE : toutes les requêtes des DAO deviennent des requêtes préparées (avec des
?), on ajoute la clé étrangère, et on répond dans le README.md aux quatre questions SQL de l'énoncé (jointures, agrégations, filtres).