Optimisations Hibernate

Abonnements, magazines... Notre catalogue complet au bas de cette page.

Créé il y a plus de cinq ans en Australie, Hibernate est devenu un standard de facto de la sphère Java. Il a contribué à prouver que le mapping Objet-Relationnel n'est pas un concept gadget pour petits projets, mais bien un élément d'architecture incontournable, utilisé ans les plus grands projets Java.

Les problématiques adressées par Hibernate sont très larges :
- Stratégies d'accès en base de données en général (relations 1-n, n-n avec table intermédiaire, 1-1, transactions, niveau d'isolation…)
- Problématiques liées au mapping Objet/Relationnel (bidirectionnalité, polymorphisme, mapping de l'héritage…).

Cet article expose les optimisations les plus indispensables pour travailler avec Hibernate.

Tout d'abord, il faut bien considérer qu'Hibernate ne produit rien de plus que ce que vous pourriez écrire avec JDBC. A ce titre, il faut toujours étudier de très près le code SQL généré par Hibernate (les outils p6spy et Jamon permettent de tracer élégamment les requêtes SQL). Avec une bonne configuration, Il est possible d'éviter 99% des requêtes superflues. Les "PreparedStatement" : la plupart des bases de données actuelles permettent de précompiler les requêtes en langage natif. Considérons la requête suivante : select * from Client where id=2. L'utilisation d'un PreparedStatement permet de décomposer cette requête en deux phases :
- La requête "select * from Client where id=?" est envoyée en base de données. La base de données précompile cette requête en langage natif.
- Le paramètre "2" est envoyé. La base de données traite la requête et renvoie le résultat.

S'ABONNER
Egalement au sommaire de :
Programmez! #94