web-dev-qa-db-fra.com

JOOQ vs Hibernate

Lorsque je discute avec stackoverflowers sur le chat et que je lis d'autres tutoriels sur la base de données avec Java alors ils me guident à utiliser [~ # ~] jooq [~ # ~ ] au lieu de [~ # ~] hibernate [~ # ~] .

Je suis totalement au courant de l'ORM avec Hibernate et je préfère utiliser Hibernate et maintenant presque au courant de JOOQ en lisant des tutoriels et une implémentation sur de petits projets.

Mais je ne sais pas quoi choisir et ce qui est parfait pour mes applications Web dynamiques qui peuvent être plus grandes, moyennes ou plus petites, soit Hibernate ou JOOQ?

BTW googlé beaucoup, mais de plus en plus confus ... !!! Tout comme: this , this et this .

Laquelle est la meilleure pour différentes conditions et situations pour le développeur.?

21
Gopal00005

Bien que jOOQ et Hibernate rivalisent pour le même public cible, ils ne résolvent pas du tout le même problème. Vous avez déjà lié cet article dans votre question . L'essence est simple:

  • Allez-vous résoudre les problèmes de persistance du graphe d'objets? Utilisez un ORM (par exemple Hibernate)
  • Allez-vous intégrer SQL à Java? Utilisez SQL (par exemple jOOQ)

Bien sûr, étant donné que les deux API couvrent l'accès aux bases de données relationnelles, elles se chevauchent dans certaines fonctionnalités. Par exemple. Hibernate prend également en charge les requêtes simples, tandis que jOOQ prend également en charge le mappage simple.

Bien que nous devrions éviter de nous plonger dans des discussions subjectives sur la question de savoir si la persistance du graphique d'objet ou SQL est une meilleure approche pour interagir avec votre base de données, je pense que ce qui précède est une réponse assez objective à quelle API est la mieux adaptée, une fois que vous avez pris la décision subjective.

[~ # ~] et [~ # ~] : vous pouvez utiliser les deux, par ex. ORM/Hibernate pour CRUD, SQL/jOOQ pour les rapports.

(Avertissement: je travaille pour l'entreprise derrière jOOQ, donc cette réponse est biaisée)

29
Lukas Eder