Mysql
 sql >> Base de données >  >> RDS >> Mysql

JDBC contre Hibernation

Répondre aux problèmes répertoriés ci-dessus :

1. Hibernate ne peut pas se connecter avec une base de données "Existante". Il essaie toujours d'en créer un qui lui est propre.

C'est faux. Hiberner peut se connecte à une base de données existante, et il n'essaie pas toujours de la recréer. Vous devez juste activer un paramètre comme hbm2ddl. auto .

2. Notre base de données peut accéder par la même application qui se trouve sur différentes plates-formes (cloud, serveur, VPS, ordinateur personnel). Hibernate peut créer des problèmes à cause de sa mise en cache dans cette situation.

Hibernate a un cache ajustable, donc ce n'est pas non plus un problème.

3. Nous n'aimons jamais confier le "travail de création de table" au code Java. Nous créons des tables manuellement, toujours.

Aucun problème. Voir p.1 ci-dessus. De plus, il existe plusieurs bibliothèques pratiques pour la création et la mise à jour indirectes de tables (par exemple, liquibase ) qui peut être utilisé en couple avec hibernate parfaitement.

4. Nous devrons peut-être utiliser des instructions SQL très longues et complexes. La dernière fois, nous avons utilisé une instruction de plus de 150 lignes, joignant plus de 20 tables. Nous doutons que nous rencontrions des problèmes en ce qui concerne l'hibernation.

Vous pouvez toujours utiliser des appels JDBC directs et invoquer des requêtes SQL natives via hibernate, si nécessaire.

5. Notre code SQL est agréable et standard. Le code généré par Hibernate semble un peu sale pour nous.

Encore une fois, si vous devez invoquer un code SQL logique compliqué au lieu d'hiberner automatiquement généré - vous pouvez le faire.

6. Nous utilisons toujours MySQL. N'utilisez jamais une autre base de données.

Pas un problème du tout. Hibernate a une prise en charge spéciale des dialectes MySQL :org.hibernate.dialect.MySQLDialect .

7. L'application que nous créons nécessite une sécurité maximale, liée au médical. Si au moins un enregistrement de données est divulgué, nous avons terminé.

Les problèmes de sécurité ne sont pas liés aux techniques ORM. Hibernate est juste une couche orientée objet logique et pratique entre les appels JDBC de base de données pure et les outils de programmation. Cela n'a aucune influence sur la sécurité commune du réseau.