sql >> Database teknologi >  >> RDS >> Mysql

JDBC VS Hibernate

Besvarelse af problemer anført ovenfor:

1. Hibernate kan ikke oprette forbindelse til en "Eksisterende" database. Det forsøger altid at skabe en for sig selv.

Det er forkert. Dvale kan oprette forbindelse til en eksisterende database, og den forsøger ikke altid at genskabe den. Du skal bare slå parameter som hbm2ddl. auto .

2. Vores database kan få adgang via samme applikation, som er på forskellige platforme (sky, server, VPS, personlig computer). Hibernate kan give problemer på grund af sin caching i denne situation.

Hibernate har en justerbar cache, så dette er heller ikke et problem.

3. Vi kan aldrig lide at give "bordskabende arbejde" til java-koden. Vi opretter tabeller manuelt, altid.

Intet problem. Se s.1 ovenfor. Desuden er der adskillige praktiske biblioteker til indirekte tabeloprettelse og opdatering (f.eks. liquibase ), som kan bruges i par med dvale perfekt.

4. Vi skal muligvis bruge meget lange og komplekse SQL-sætninger. Sidste gang brugte vi et udsagn med mere end 150 linjer, der forbinder mere end 20 tabeller. Vi tvivler på, om vi vil stå over for problemer i dette, når det kommer til Hibernate.

Du kan altid bruge direkte JDBC-kald og påkalde native SQL-forespørgsler via dvale, hvis det er nødvendigt.

5. Vores SQL-kode er pæn og standard. Dvale-genereret kode ser ud til at være lidt beskidt for os.

Igen, hvis du er nødt til at påkalde noget logisk kompliceret SQL-kode i stedet for automatisk dvale-genereret - du kan gøre det.

6. Vi bruger altid MySQL. Brug aldrig nogen anden DB.

Ikke et problem overhovedet. Hibernate har speciel MySQL-dialektunderstøttelse:org.hibernate.dialect.MySQLDialect .

7. Den applikation, vi opretter, kræver maksimal sikkerhed, relateret til medicinsk. Hvis mindst én datapost er lækket, er vi færdige.

Sikkerhedsproblemer er ikke relateret til ORM-teknikker. Hibernate er blot et logisk og bekvemt objektorienteret lag mellem rene database JDBC-kald og programmørers værktøjer. Det påvirker ikke på en eller anden måde fælles netsikkerhed.



  1. Sådan sletter du elementer fra SQLite-databasen med SQLiteOpenHelper-klassen

  2. Installer MySQL på Ubuntu uden en adgangskodeprompt

  3. SQL Server rekursiv selvtilslutning

  4. Sekvens vs identitet