sql >> Database >  >> RDS >> Mysql

JDBC VS Hibernate

Bovenstaande problemen beantwoorden:

1. Hibernate kan geen verbinding maken met een "bestaande" database. Het probeert altijd een eigen exemplaar te maken.

Dit is fout. Slaapstand kan verbinding maken met een bestaande database en deze probeert deze niet altijd opnieuw te maken. U hoeft alleen parameters zoals hbm2ddl. auto .

2. Onze database kan toegang krijgen via dezelfde applicatie die zich op verschillende platforms bevindt (cloud, server, VPS, personal computer). Hibernate kan in deze situatie problemen veroorzaken vanwege de caching.

Hibernate heeft een instelbare cache, dus ook dit is geen probleem.

3. We houden er nooit van om het "tafelcreatiewerk" aan de java-code te geven. We maken tabellen altijd handmatig aan.

Geen probleem. Zie p.1 hierboven. Verder zijn er verschillende handige bibliotheken voor het indirect maken en bijwerken van tabellen (bijv. liquibase ) die perfect in combinatie met winterslaap kan worden gebruikt.

4. Mogelijk moeten we zeer lange en complexe SQL-instructies gebruiken. De vorige keer gebruikten we een statement met meer dan 150 regels, die meer dan 20 tabellen samenvoegden. We betwijfelen of we hier problemen mee zullen krijgen als het om Hibernate gaat.

U kunt altijd rechtstreekse JDBC-aanroepen gebruiken en native SQL-query's oproepen via de slaapstand, indien nodig.

5. Onze SQL-code is lekker standaard. Door de slaapstand gegenereerde code lijkt een beetje vies voor ons.

Nogmaals, als je een logisch gecompliceerde SQL-code moet aanroepen in plaats van automatisch gegenereerde slaapstand, dan kan dat.

6. Wij gebruiken altijd MySQL. Gebruik nooit een andere DB.

Helemaal geen probleem. Hibernate heeft speciale MySQL-dialectondersteuning:org.hibernate.dialect.MySQLDialect .

7. De applicatie die we maken, vereist maximale beveiliging, gerelateerd aan medisch. Als er ten minste één gegevensrecord is gelekt, zijn we klaar.

Beveiligingsproblemen zijn niet gerelateerd aan ORM-technieken. Hibernate is gewoon een logische en handige objectgeoriënteerde laag tussen pure database JDBC-oproepen en programmeertools. Het heeft op geen enkele manier invloed op de algemene internetbeveiliging.



  1. Goede preventie van MYSQL-injectie?

  2. SEC_CASE_SENSTIVE_LOGON in 12c

  3. Waarschuwing:PDOStatement::execute():SQLSTATE[HY093]:Ongeldig parameternummer:parameter is niet gedefinieerd in...bestandstekst

  4. Hoe een dubbele sleutelfout in T-SQL (SQL Server) te negeren