Extrait du cours complet Spring MVC dans une architecture 3tier
1 Rappels
Nous poursuivons dans cet article le travail fait dans les précédents :
• Spring MVC par l’exemple – partie 1 : [http://tahe.developpez.com/java/springmvc-part1]
• Spring MVC par l’exemple – partie 2 : [http://tahe.developpez.com/java/springmvc-part2]
• Spring MVC par l’exemple – partie 3 : [http://tahe.developpez.com/java/springmvc-part3]
• Spring MVC par l’exemple – partie 4 : [http://tahe.developpez.com/java/springmvc-part4]
Dans le dernier article, nous avons mis en oeuvre Spring MVC dans une architecture 3tier [web, metier, dao] sur un exemple basique de gestion d’une liste de personnes. Cela nous a permis d’utiliser les concepts qui avaient été présentés dans les précédents articles.
2 Spring MVC dans une architecture 3tier – Exemple 2 – Firebird
2.1 La base de données Firebird
Dans cette version, nous allons installer la liste des personnes dans une table de base de données Firebird. On trouvera dans le document [http://tahe.developpez.com/divers/sql-firebird/] des informations pour installer et gérer ce SGBD. Dans ce qui suit,les copies d’écran proviennent d’ IBExpert, un client d’administration des SGBD Interbase et Firebird.La base de données s’appelle [dbpersonnes.gdb]. Elle contient une table [PERSONNES] :
La table [PERSONNES] contiendra la liste des personnes gérée par l’application web. Elle a été construite avec les ordres SQL suivants :
1.
2. CREATE TABLE PERSONNES (
3. ID INTEGER NOT NULL,
4. « VERSION » INTEGER NOT NULL,
5. NOM VARCHAR(30) NOT NULL,
6. PRENOM VARCHAR(30) NOT NULL,
7. DATENAISSANCE DATE NOT NULL,
8. MARIE SMALLINT NOT NULL,
9. NBENFANTS SMALLINT NOT NULL
10. );
11.
12.
13. ALTER TABLE PERSONNES ADD CONSTRAINT CHK_PRENOM_PERSONNES check (PRENOM<> »);
14. ALTER TABLE PERSONNES ADD CONSTRAINT CHK_MARIE_PERSONNES check (MARIE=0 OR MARIE=1);
15. ALTER TABLE PERSONNES ADD CONSTRAINT CHK_NOM_PERSONNES check (NOM<> »);
16. ALTER TABLE PERSONNES ADD CONSTRAINT CHK_ENFANTS_PERSONNES check (NBENFANTS>=0);
17.
18.
19. ALTER TABLE PERSONNES ADD CONSTRAINT PK_PERSONNES PRIMARY KEY (ID);
2.2 Le projet Eclipse des couches [dao] et [service]
Pour développer les couches [dao] et [service] de notre application avec base de données, nous utiliserons le projet Eclipse [springmvc-38]
suivant:
Le projet est un simple projet Java, pas un projet web Tomcat. Rappelons que la version 2 de notre application va utiliser la couche
[web] de la version 1. Cette couche n’a donc pas à être écrite.
Dossier [src]
Ce dossier contient les codes source des couches [dao] et [service] :
On y trouve différents paquetages :
• [istia.st.springmvc.personnes.dao] : contient la couche [dao]
• [istia.st.springmvc.personnes.entites] : contient la classe [Personne]
• [istia.st.springmvc.personnes.service] : contient la classe [service]
• [istia.st.springmvc.personnes.tests] : contient les tests JUnit des couches [dao] et [service]
ainsi que des fichiers de configuration qui doivent être dans le ClassPath de l’application.
2.3 La couche [dao]
2.3.1 Les composantes de la couche [dao]
La couche [dao] est constituée des classes et interfaces suivantes :
• [IDao] est l’interface présentée par la couche [dao]
• [DaoImplCommon] est une implémentation de celle-ci où le groupe de personnes se trouve dans une table de base de données. [DaoImplCommon] regroupe des fonctionnalités indépendantes du SGBD.
• [DaoImplFirebird] est une classe dérivée de [DaoImplCommon] pour gérer spécifiquement une base Firebird.
• [DaoException] est le type des exceptions non contrôlées, lancées par la couche [dao]. Cette classe est celle de la version 1.
L’interface [IDao] est la suivante :
1. package istia.st.springmvc.personnes.dao;
2.
3. import istia.st.springmvc.personnes.entites.Personne;
4.
5. import java.util.Collection;
6.
7. public interface IDao {
8. // liste de toutes les personnes
9. Collection getAll();
10. // obtenir une personne particulière
11. Personne getOne(int id);
12. // ajouter/modifier une personne
13. void saveOne(Personne personne);
14. // supprimer une personne
15. void deleteOne(int id);
16. }
…….
Cours complet Spring MVC dans une architecture 3tier (2633 KO) (Cours PDF)