![]()
j'ai fait une lecture d'une 60aine de page pour comprendre ce qu'est hibernate et comment ca marche ,
en résumant j'en arrive a ceci:
Hibernate est un framework qui permet de manipuler facilement les données et d'assurer ler persistance.
Il s'agit d'un outil ORM, qui correspond a une couche entre l'application et la BD.
Il réduit le temps de développement de l'application en éliminant une partie du code SQL a écrire pour interagir avec la BD, le code SQL résiduel étant donc encapsuler.
Pour utiliser Hibernate , il faut:
Ajouter dans les chemins de compil et d'éxe du projet les librairies nécéssaire a Hibernate (hibernate2.jar etc..) , et le driver de la BD
Placer les fichiers de configuration (configurer hibernate.cfg.xml)
Configurer la connexion a la BD dans un fichier hibernate.properties
On peut alors définir un fichier mapping pour chaque objet persistant.
Ces derniers sont défini par des classes java et doivent etre POJO c'est a dire que dans ces classes:
chaque attribut doit avoir les getter/setter, un constructeur par défault, et l'identifiant de la classe doit avoir un certain type (je rentre pas dans les détails..)
Dans ce fihier mapping , on doit retrouver les différentes relations entre les POJO, il en existe plusieurs:
relation one-to-one
relation héritage
relation many-to-one
relation many-to-many
component mapping
mapping de collections
Une fois, la génération de la BD effectué (a partir des fichiers mapping par une ligne de commande ), on peut manipuler les données.
Pour cela il faut créer une session factory, pour ensuite créer une session de celle ci et on peut alors définir des transactions et manipuler les données.
On peut aussi questionner la BD , pour cela il y a 3 langage de questionnement supporté par hibernate : HQL étant le conseillé, criteria queries, et Native queries.
On peut aussi choisir le mode de controle de la concurrence entre les accès a la BD.
soit optimistic control consurrency: c'est hibernate lui meme qui gère les accés a la BD
soit Pessimistic Locking: c'est l'utilisateur qui gère les accés
Alors Questions:
-Est ce que j'ai bien compris , si je me trompes quelque part rectifiez moi svp
-J'ai compris qu'on peut faire des applications J2EE avec hibernate, dans ce cas les entity bean sont remplacés par des POJO , alors ca veut dire que pour une appli J2EE en hibernate plus besoin d'interface remoteHome, remote, Local, LocalHome.., une classe POJO suffit , est ce qu'on peut m'éclairer sur ce sujet je comprend pas trés bien, pourquoi se taper des EJB alors qu'on peut passer par hibernate qui semble etre bien plus simple?![]()
-Sous eclipse, pour utiliser hibernate, il faut
Dans oracle, Mysql ou autre, on doit
définir une BD et des tables dans celle-ci
puis on définit une nouvelle connexion avec définition des accés aux BD et autorisations,
et dans eclipse:
installez J2SE 1.4 sdk
installez le plugin hibernate synchronizer
creer un nouveau projet et un rep lib dedans et y mettre hibernate2.jar et jtds.. et d'autres packages indispensables a hibernate..
on ajoute alors au classpath les librairies défini dans lib
on peut alors commencer l'appli hibernate ,
-on crée un hibernate conf file, dans lequel on défini le type de database, le driver,l'utilisateur, et son mot de passe pour la connexion
-on crée le fichier de mapping, pas besoin de le remplir en fait c'est une génération, il est déjà rempli quoique pas conforme a la dtd d'aprés ce que j'ai compris(ou est donc l'interet si on doit se le retaper)
-tous les fichiers mapping sont générés on peut alors testes l'appli,on cree un file dans notre projet, et dedans on fait la création de la sessionFactory etc.., on manipule les données...
Comment ca se passe dans les autres IDE, en particulier WSAD, RSA..
Aussi a aucun moment il n'est question des fichiers POJO, sont ils générés automatiquement, ou on a juste besoin des fichiers mapping ?
Pourquoi eclipse génere un fichier mapping s'il ne colle pas a la syntaxe hibernate ?
pourquoi utiliser XDoclet avec eclipse si eclipse génére déjà automatiquement les fichiers, vous me direz c'est peut etre parceque ca marche pas bien du tout..![]()
Dernière question :
On parle de bataille entre EJB 3 et hibernate, pour EJB3 on aurait un nouveau modèle de persistance les POJO (tiens tiens ..), les pro-EJB parle de se débarasser d'hibernate maintenant que les EJB vont etre moins complexe , et les pro-Hibernate disent que Hibernate 3 permet de faire des trucs super que EJB3 ne permettra pas et blblba donc votre avis sur la question ..
C'est un peu long comme post désolé
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager