Résultat pour la recherche 'spring dao '

Intégration d’Hibernate avec Spring

L’objectif de cet article est d’exposer les différentes méthodes permettant d’intégrer les frameworks Hibernate et Spring dans une même application.

Intégartion Hibarnate et Spring

Il existe deux méthodes pour intégrer les deux frameworks spring et Hibernate dans une même application :

  • La première méthode consiste à utiliser le module spring ORM.
  • La deuxième c’est d’utiliser le module spring DAO.    

Spring offre, à travers ses deux modules, spring ORM et spring DAO,  une solution pour l’intégration de plusieurs frameworks de mapping (Hibernate, iBatis, JDO, TopLink …).

Le principe des deux modules consiste à faire une abstraction par rapport au framework de mapping utilisé pour accéder à la base de données en offrant un système de management des transactions et d’accès aux données et une hiérarchie d’exceptions génériques.

Dans cet article, nous allons voir comment configurer spring et Hibernate en utilisant les deux méthodes.

Pour les deux méthodes,  il est obligatoire de déclarer un dataSource qui définit la connexion à la base. L’exemple ci-dessous permet de configurer la connexion à une base MySQL.

On peut utiliser un fichier « propreties » pour configurer et définir les paramètres de la dataSource.config

Une fois le dataSource est configurée, il est nécessaire de définir une sessionFactory. L’exemple ci-dessous montre comment définir une sessionFactory pour Hibernate2.

config

Pour utiliser spring et Hibernate, il est obligatoire que le sessionFactory soit une instance de la classe LocalSessionFactoryBean de Spring. Le sessionFactory doit faire référence à la dataSource définit précédemment. Ensuite, il faut préciser les fichiers de mapping d’Hibenate. Enfin, il faut définir les propriétés spécifiques à Hibernate telle que hibernate.dialect qui est spécifique à chaque base et qui permet d’optimiser l’utilisation des spécificités de chaque base, par exemple pour la génération du SQL.

Utiliser Spring DAO

Pour utiliser cette méthode, il faut que les classes DAO héritent de la classe HibernateDaoSupport de Spring. Les beans des DAOs doivent avoir la propriété « sessionFactory » comme le montre l’exemple ci-dessous.

daoconf

 
Utiliser Spring ORM

Cette méthode n’impose aucune contrainte, il suffit juste de définir un HibernateTemplate comme le montre l’exemple ci-dessous :

orm context

HibernatTemplate offre plusieurs méthodes pour accéder aux méthodes offertes par le framework Hibernate. Si vous voulez utiliser des méthodes non supportés par HibernateTemplate vous devez utiliser callback, comme le montre l’exemple ci dessous, et ceci pour accéder aux méthodes de la session Hibernate.

orm dao

Application

Dans cet article, nous allons partir de  l’application  de l’article précédent « intégration spring  struts » pour ajouter le framework Hibernate.

La base de données utilisée est MySQL. La base springdb contient une table user qui contient les champs id, login et password.

L’objectif de l’application est de montrer comment  mettre en place Hibernate et spring sans entrer dans les détails des méthodes des modules spring DAO et spring ORM.

Pour utiliser Spring ORM il faut:

Modifier le fichier de configuration applicationContext.xml  en suivant ce qui est décrit précédement.

Ajouter le fichier de mapping User.hbm.xml.

user hbm

Ajouter les interfaces DAO et UserDAO.

Ajouter la classe UserDAOImpl, l’implémentation de la classe UserDAO.

user dao

Modifier la classe UserManagerImpl pour utiliser la classe UserDAO.

manager
Pour télécharger le code de cette application cliquer ici application

Pour utiliser spring ORM, il suffit  de modifier les fichiers applicationContext.xml et UserDAOImpl comme c’est indiqué dans les exemples du paragraphe « Utiliser Spring ORM ».

Conclusion

Dans cet article, nous avons vu comment intégrer spring et Hibernate dans une même application en utilisant spring DAO et spring ORM. Il reste maintenant à configurer l’application pour gérer les transactions, ceci sera l’objectif du prochain article.

Références

http://static.springframework.org/spring/docs/2.0.x/reference/orm.html

Spring in action Craig Walls & Ryan Breidenbach


Présentation du module spring DAO

L’objectif de cet article est d’expliquer le principe du module spring DAO.

Principe du module spring DAO 

Le principe de spring DAO consiste à faire une abstraction par rapport à la méthode d’accès à la base de données (framework de mapping, jdbc …) en offrant un système de management des transactions et d’accès aux données et une hiérarchie d’exceptions génériques.
Spring devise le processus de manipulation des données en deux parties : une partie invariable  ou commune pour toutes les technologies tels que l’ouverture et la fermeture de la connexion … et une partie variable ou spécifique à chaque technologie tels que la méthode d’exécuter une requête, la récupération du résultat … En se basant sur cette séparation spring définit deux classes : Template et callback qui se chargent respectivement de l’implémentation de la partie fixe et de la partie variable.

Le schéma ci-dessous définit les responsabilités de chaque classe.

springdao

Pour simplifier l’utilisation des classes Template et callback, certaines méthodes  spécifiques aux framework sont implantées par les Templates spécifiques à chaque framework, ce qui permet de les utiliser sans passer par le callback, exemple la méthode update de la classe JdbcTemplate.

Pour accéder aux Templates (JdbcTemplate, HibernateTemplate, JdoTemplate et JpaTemplate), Spring dispose des classes DAO Support, il suffit que les dao de l’application hérite d’un DAO Support pour accéder au Template spécifique exemple pour accéder à HibenateTemplate il suffit que ton dao hérite de la classe HibenateDaoSupport et ensuite utiliser la méthode getHibernateTemplate().

Le schéma ci-dessous explique la relation entre les différentes classes utilisées.

daosupport

Exemple : JdbcTemplate

Pour utiliser jdbc, prenant par exemple le cas d’insertion des données, la méthode doit, obligatoirement, déclarer les ressources, ouvrir la connexion, créer la requête et l’exécuter et en fin gérer les exception. L’exemple ci-dessous montre un exemple d’utilisation du jdbc en cas d’insertion de données.

jdbc_code

Nous allons voir maintenant comment en utilisant spring DAO l’exemple précèdent sera simplifié, le code précèdent sera réduit au code ci dessous :

jdbcTemplate_code

Donc, comme nous avons vu précédemment, en utilisant jdbcTemplate, seulement la partie variable sera implémentée  (la création des requêtes qui dépend de la technologie utilisée), spring DAO se charge de la partie invariable.

Conclusion

Dans cet article nous avons vu comment Spring DAO permet de simplifier et standardiser l’accées à la base de données en faisant abstraction aux technologies utilisées pour accéder et manipuler les données. Mais spring DAO n’est pas la seule solution présentée par spring pour accéder à la BD, il dispose aussi du module spring ORM comme solution pour accéder et manipuler les données.

Références:                                                                                                                                

Spring in action Craig Walls & Ryan Breidenbach

http://static.springframework.org/spring/docs/2.0.x/reference/dao.html

 




OCS :: Oracle Collaborative... |
UN PEU SUR JACKS, C'EST COM... |
Mes ordinateurs |
Unblog.fr | Créer un blog | Annuaire | Signaler un abus | MM SITE
| Dahevos L!f3
| bkaurelien