DAO- und JDBC-Beziehung?

7

Ich weiß, dass Hibernate ORM (Object Relational Mapping) implementiert, welche Art von Mapping implementiert JDBC? Implementiert es DAO? Ich verstehe nicht ganz, wie / wenn DAO mit JDBC verwandt ist ...?

    
rrazd 15.08.2011, 20:30
quelle

2 Antworten

16

DAO ist kein Mapping. DAO steht für Data Access Object. Es sieht ungefähr so ​​aus:

%Vor%

Für DAO ist JDBC nur ein Implementierungsdetail.

%Vor%

Hibernate könnte ein anderer sein.

%Vor%

JPA könnte ein anderer sein (für den Fall, dass Sie eine bestehende Legacy-App zu JPA migrieren; für neue Apps wäre es etwas komisch, da JPA für sich genommen eigentlich die DAO ist, mit z Hibernate und EclipseLink als verfügbare Implementierungen).

%Vor%

Sie können die UserDAO -Implementierung wechseln, ohne den Geschäftscode zu ändern, der das DAO verwendet (nur, wenn Sie die Schnittstelle natürlich korrekt codieren).

Für JDBC müssen Sie nur viele Zeilen schreiben, um die gewünschten Informationen zu finden / speichern / löschen, während es bei Hibernate nur ein paar Zeilen sind. Hiberenate als ein ORM nimmt genau diese fiese JDBC-Arbeit von Ihren Händen, unabhängig davon, ob Sie ein DAO verwenden oder nicht.

Siehe auch:

BalusC 15.08.2011, 20:36
quelle
4

DAO ist eine Abstraktion für den Zugriff auf Daten, die Idee besteht darin, die technischen Details des Datenzugriffs vom Rest der Anwendung zu trennen. Es kann für jede Art von Daten gelten.

JDBC ist eine API für den Zugriff auf relationale Datenbanken mit Java.

JDBC ist niedriger als ein ORM, es ordnet einige Java-Typen SQL-Typen zu, aber nicht mehr als das, es dauert nur DDL und DML, führt es aus und gibt Ergebnismengen zurück. Es liegt an Ihrem Programm, einen Sinn daraus zu machen.

    
Nathan Hughes 15.08.2011 20:33
quelle