Table des matières
15 DEVELOPPEMENT D’APPLICATION DE BASE DE DONNEES EN JAVA ........... 2
15.1 Application Java client-serveur .................................................................................................................. 2
15.2 Enjeux de conception d'une application Java/JDBC .............................................................................. 20
15.3 Gestion de la sécurité ................................................................................................................................. 26
15.4 Développement d'applications Web par servlet Java.............................................................................. 27
15.5 DataSource, ConnectionPoolDataSource et PooledConnection ............................................................. 36
15.6 Autres approches de gestion de la persistence ......................................................................................... 36
15.7 Notes bibliographiques .............................................................................................................................. 37
15.8 Références ................................................................................................................................................... 37
A P P L I C A T I O N S J A V A / J D BC
2002 Robert Godin. Tous droits réservés.
1
Chapitre
15
2
15 Développement dapplication de base de données en Java
Ce chapitre introduit quelques concepts de base du développement d’applications de base de données en
Java/JDBC. L’objectif n’est pas de traiter de manre exhaustive de la conception des applications mais
plutôt de mettre l’accent sur la gestion de la persistence dans une application Java qui utilise les services
d'une base de données relationnelle SQL en passant par JDBC.
A l'étape de conception, il faut concevoir les programmes d’application qui vont aliser les traitements
prévus dans les cas d’utilisation du sysme. L’architecture du sysme doit être précisée. Une organisation
logique typiquecompose le logiciel en couches (patron d'architecture en couche) :
Couche psentation. Ceci regroupe les classes diées à la psentation des données.
Couche contrôle (coordonnateur d'application). Cette couchere le séquencement des orations prévues dans le
cas d'utilisation.
Couche domaine dapplication (métier). Cette couche réalise les traitements particuliers au domaine d’application.
Couche de services. Persistence, pertoires de services, communication, etc.
Ces couches logiques peuvent être parties physiquement selon diverses architectures physiques. Plusieurs
alternatives sont à considérer : client-serveur, trois couches (three-tier), multi-couches (multitier). Dans la
section suivante, nous considérons le cas le plus simple : le client-serveur.
15.1 Application Java client-serveur
Dans un contexte d’utilisation d’un SGBD, l’architecture physique la plus simple est le client-serveur. Le
SGBD joue le rôle de serveur et le programme d’application, désigné par le terme client, est souvent déplo
sur une machine différente du serveur de base de dones et communique avec le SGBD en passant par
un logiciel intermédiaire (middleware).
Réseau
Logiciel
intermédiaire
Pilote de
télécommunication
Programme
d'application Logiciel
intermédiaire
Pilote de
télécommunication
SGBD
Client Serveur
BD
Figure 1. Architecture client-serveur
3
Le logiciel intermédiaire réalise les fonctions de communication entre le programme client et le serveur de
base de données en isolant le client des tails des mécanismes de communication utilisés. Dans ce type
d’architecture, le programme client alise les fonctions des couches logiques de présentation, contrôle et
domaine d’application. Il fait appel au serveur de base de données pour aliser le service de persistence
des dones. Le serveur de base de données peut aussi contenir une partie des fonctions du domaine
d’application sous la forme de contraintes d’ingrité, de chettes et de modules stockés.
Programme d'application :
- présentation
-contrôle
-domaine d'application
SGBD
- persistence
- partie du domaine d'application ?
Client Serveur
Figure 2. Répartition des couches logiques entre les deux couches physiques :client et serveur.
Un aspect à concevoir est lorganisation des appels au serveur de BD au niveau du programme client. Pour
illustrer quelques principes, nous prenons le cas d’utilisation EnregistrerPrêts dont la scification détaillée est
la suivante :
Nom: EnregistrerPts
Description courte : Enregistrer les prêts.
Type: Interactif
Description : Ce cas d'utilisation estclenché par le commis au prêt suite à une requête d'un membre ou
d'un emplo et lui permet d'enregistrer un ou plusieurs pts.
Exigence d'intégrité : la séquence constitue une transaction
quence normale d'interaction :
Commis au pt
Système
1. Le commis invoque lcran d'enregistrement du
prêt
2. Le sysme demande la saisie de l'identificateur de
l'utilisateur
3. Le commis saisit l'identificateur de l'utilisateur à
l'aide de la carte de membre ou manuellement
4. Le sysme affiche le nombre de prêts en cours et
demande de saisir l'identificateur de l'exemplaire.
5. Le commis entre l'identificateur de l'exemplaire à
l'aide du lecteur optique ou manuellement
4
6. Le système enregistre le prêt, affiche un message
d'acquiescement.
Exceptions :
Ligne 4 : Si l'identificateur est invalide ou les et les conditions requises ne sont pas satifaites, un
avertissement est donné et le traitement est interrompu.
Ligne 6 : le statut de l'exemplaire doit être « Disponible » pour qu'un prêt soit effect. Si le statut de
l'exemplaire est «P» ou « Reti », le prêt est reje, un avertissement est donné et le traitement est
interrompu.
Exemple. Les interactions suivantes illustrent quelques snarios typiques produits par le programme Java
qui est présen par la suite.
Le snario suivant consitue un cas normal.
1 / 38 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !