Vous êtes sur la page 1sur 3

Dr Samba SIDIBE

Enseignant chercher
Ecole Polytechnique de Thies
ssidibe@ept.sn

Labs1 Jakarta EE
Objectif : faire du crud simple en utilisant les servlets et JPA

Part 1 : Con guration de la source de données


Qu’est ce qu’une source de données
Une source de données (DataSource) est une ressource gérée par le conteneur d'application qui
permet aux applications d'accéder à une base de données de manière cohérente et e cace. Les
sources de données sont con gurées dans le serveur d'application (comme WildFly, GlassFish,
etc.) et sont accessibles aux applications via JNDI (Java Naming and Directory Interface).

Serveur JEE

App 1 App 2 App 3 App 4

JPA JDBC pool pool pool

BD
Avantage des sources de données
Gestion centralisée des connexions : Les sources de données permettent une gestion
centralisée des connexions à la base de données. Elles maintiennent un pool de connexions
ouvertes à la base de données, ce qui évite les coûts de création et de fermeture de connexions à
chaque requête.

Optimisation des performances : En utilisant un pool de connexions, les sources de données


peuvent optimiser les performances en réutilisant les connexions existantes plutôt que d'en créer
de nouvelles à chaque fois. Cela réduit la latence associée à l'ouverture et à la fermeture de
connexions.
fi
fi
ffi
Gestion des erreurs : Les sources de données incluent généralement des mécanismes de
gestion des erreurs, tels que la reconnexion automatique en cas de perte de connexion avec la
base de données, la gestion des timeouts, etc.

Sécurité : Les sources de données peuvent gérer la sécurité des connexions à la base de
données, en stockant de manière sécurisée les informations d'authenti cation (nom d'utilisateur,
mot de passe) et en fournissant des mécanismes de chi rement pour les communications avec la
base de données.

Portabilité : En utilisant JNDI (Java Naming and Directory Interface) pour accéder aux sources de
données, les applications peuvent être con gurées pour fonctionner avec di érentes bases de
données sans nécessiter de modi cations de code. Cela facilite la portabilité des applications
entre di érents environnements.

Gestion des transactions : Les sources de données peuvent être con gurées pour participer à
des transactions gérées par le conteneur (comme des transactions JTA - Java Transaction API).
Cela permet d'assurer l'intégrité des transactions et la cohérence des données dans des
scénarios multi-étapes.

Scalabilité : Les sources de données peuvent être con gurées pour gérer e cacement un grand
nombre de connexions à la base de données, ce qui les rend adaptées aux applications à forte
charge et hautement évolutives.

Comment créer une source de données?


Ajout du driver de la BD : il faut copier le driver(JDBC) de la base de données dans le repertoire
domains/domain1/lib. Pour que le driver soit pris en compte par un serveur deja en service il faut
redémarrer le serveur

Créer une pool de connexions: La commande permettant de creer la pool de connexion est

asadmin create-jdbc-connection-pool --datasourceclassname


com.mysql.cj.jdbc.MysqlDataSource --property
user=login:password=pwd:DatabaseName=dbName:ServerName=localhost:p
ort=3306:allowPublicKeyRetrieval=true:useSSL=false nomPool

Les autres options de la commande peuvent etre trouvées dans sur le lien ci-dessous
h t t p s : / / d o c s . o r a c l e . c o m / c d / E 2 6 5 7 6 _ 0 1 / d o c . 3 1 2 / e 2 4 9 3 8 / c re a t e - j d b c - c o n n e c t i o n -
pool.htm#GSRFM00036

Veri cation de la pool de connexion : Pour s’assurer que la con guration de la pool de
connexions est correcte. Vous pouvez executer la commande ci-dessous. Le serveur tentera de
se connecter a la base de données avec les paramètres de con guration de la pool de connexion

asadmin ping-connection-pool nomPool

Creation de la source de données :


Ca permet de dé nir un nom JNDI a utiliser par les applications déployées dans le serveur pour
accéder a la pool de connexion

asadmin create-jdbc-resource --connectionpoolid nomPool nomRessource

Le nom de la ressource est en general au format jdbc/nom


fi
ff
fi
fi
fi
fi
ff
fi
fi
fi
fi
ffi
ff
Part 2 : Crud sur une entité avec des servlets
La creation d’entité manager consomme beaucoup de ressources. On vous
recommande dans vos applications d’en créer une seule par SGBD. Dans un
serveur JEE la bonne pratique est de demander au serveur de creer et gérer
l’entite manager et de l’injecter au besoin dans le code

Injection d’entité manager dans une servlet:

@PersistenceContext
private EntityManager em;

Injection d’entité manager factory:


Deconseillé

@PersistenceUnit
private EntityManagerFactory emf;

Crud :
En injectant l’entité dans les servlet creer des pages permettant de faire du crud sur une
entité

Vous aimerez peut-être aussi