Beruflich Dokumente
Kultur Dokumente
19/10/2004
Des objets persistants stocks dans une base de donne, n Des noms, des donnes
n
Le concept de persistance, n Ce qu'est un entity bean, du point de vue du programmeur, n Les caractristiques des entity beans , n Les concepts de programmation des entity beans.
19/10/2004
compliqu.
n Etat d'un objet = ses attributs, y compris les atributs hrits. n Si les attributs sont eux-mme des instances d'une classe, il
A partir d'un tat srialis, on peut reconstruire l'objet En java, au travers de l'interface java.io.Serializable, des mthodes de java.io.ObjectInputStream et java.io.ObjectOutputStream
Ex : on srialize mille comptes bancaires. Comment retrouver ceux qui ont un solde ngatif ?
19/10/2004
On stocke l'tat d'un objet dans une base de donne. Ex : la classe Personne possde deux attributs nom et prenom, on associe cette classe une table qui possde deux colonnes : nom et prenom. On dcompose chaque objet en une suite de variables dont on stockera la valeur dans une ou plusieurs tables. Permet des requtes complexes.
19/10/2004
Pas si simple
n
Dtermination de l'tat d'un objet parfois difficile, tout un art n Il existe des produits pour nous y aider TopLink (WebGain), JavaBlend (Sun), n Aujourd'hui la plupart des gens font a la main avec JDBC ou SQL/J. n Mais SQL dur tester/debugger source de nombreuses erreurs
Les Base de donnes objet stockent directement des objets. Plus de mapping ! Object Query Language (OQL) permet de manipuler les objets Relations entre les objets videntes (plus de join) Bonnes performances mais mauvaise scalabilit.
19/10/2004
Ce sont des objets qui savent se mapper dans une base de donne. Ils utilisent un mcanisme de persistance (parmi ceux prsents) Ils servent reprsenter sous forme d'objets des donnes situes dans une base de donne
n
Le plus souvent un objet = une ou plusieurs ligne(s) dans une ou plusieurs table(s)
Exemples
n Compte bancaire (No, solde), n Employ, service, entreprises, livre, produit, n Cours, lve, examen, note,
donnes
n On va gagner la couche middleware !
19/10/2004
On lit les informations d'un compte bancaire en mmoire, dans une instance d'un entity bean, On manipule ces donnes, on les modifie en changeant les valeurs des attributs d'instance, Les donnes seront mises jour dans la base de donnes automatiquement ! Instance d'un entity bean = une vue en mmoire des donnes physiques
Idem session beans : interface locale, remote , home, local home, classe du bean, descripteur. Quelques particularits cependant
n La classe du bean se mappe dans une base de donnes. n Elle doit fournir certaines mthodes obligatoires, qui seront
appeles par le container + des mthodes de manipulation simples des donnes. n Il est ncessaire d'avoir une classe du type de la cl primaire du bean. n Cl primaire = un objet srializable, unique pour chaque instance. C'est la cl primaire au sens SQL.
19/10/2004
Survivent aux crashes du serveur, du SGBD Ce sont des vues sur des donnes dans un SGBD
n n
Plusieurs client peuvent accder aux mmes donnes (compte bancaire par exemple) Un seul thread par bean dans le modle EJB, code plus simple crire, Mais alors, il faut synchroniser les beans en mmoire pour qu'ils se rafrachissent lorsque les donnes changent. Mais oui ! On peut mme modifier les donnes dans le SGBD depuis un mcanisme extrieur ! Dpend de la politique de transaction du bean.
19/10/2004
Partage d'instances par plusieurs clients. n Recyclage des instances n Processus similaire aux session beans stateful
ejbActivate() : appele par le container lorsque le bean va recevoir un nouvel EJBObject et de nouvelles donnes dont une cl primaire. Dans ce callback on doit acqurir des ressources (socket) n ejbPassivate() : appele lorsque le bean va tre swapp sur disque. Il faut librer les ressources.
19/10/2004
Juste avant la passivation, la mthode ejbStore() est appele. Elle s'occupe de sauvegarder l'tat du bean dans une BD. Idem, au moment de l'activation, le bean doit lire son tat depuis la BD. Ceci est ralis en appelant ejbLoad().
19/10/2004
EJB.
10
19/10/2004
Les entity beans correspondant des lignes dans une BD, on peut avoir besoin de faire des recherches. Similaire un SELECT Se traduit par la prsence de mthodes "finders" dans l'interface HOME
n
n n
11
19/10/2004
public interface javax.ejb.EntityContext extends javax.ejb.EJBContext { public javax.ejb.EJBLocalObject getEJBLocalObject(); public javax.ejb.EJBObject getEJBObject(); public java.lang.Object getPrimaryKey(); }
12
19/10/2004
getEJBLocalObject() et getEJBObject() permettent d'obtenir une rfrence sur l'EJB Object associ au bean.
n
On l'utilise depuis ejbLoad() pour savoir quelle donne il faut lire. n Depuis ejbRemove(), pour savoir quelle donne il faut supprimer.
13