OR-Mapping (Hibernate) versus JDBC

Status
Nicht offen für weitere Antworten.

noisebreath

Bekanntes Mitglied
Hi,

mich würd mal interessieren was eure meinung zu OR-Mappern ist. Habt ihr gute Erfahrung damit gemacht? Was sind eurer Meinung nach die Vor- und Nachteile? Wo würdet ihr OR-Mapper wie Hibernate eher einsetzen und wo würdet ihr das eher lassen?
Eigentlich interessiert mich dazu alles mögliche weil ich am überlegen bin ob es sich für mich lohnt mich damit auseinander zu setzen. Mir fehlen aber informationen um eine entscheidung zu treffen.

Vorteilhaft scheint mir zu sein, dass ich einfache übertragung von meinen Objekten auf tabellen hab (attribute -> spalten etc). Mehr oder weniger zugriff auf die DB hab , was ich doch aber auch mit einem plugin ala SQL-query hätte.
Wie gesagt ich sehe nicht sooo sehr den Sinn dahinter, daher lasst die Diskussionspiele beginnen :)

lg noise
 
G

Guest

Gast
Mit JPA (Hibernate ist nur eine von vielen Implementierungen, aber eine, die bereits sehr weit ist) entwickelt
man einfach objektorientiert und Persistence ist ein netter "Nebeneffekt".

Man arbeitet damit auf einem etwas höheren Abstraktionsniveau als mit reinem SQL und erfindet das Rad nicht
immer wieder neu. Wenn du wirklich sehr datenintensive Anwendung vor hast (damit meine ich wirklich massenweise
Daten hin und her schaufeln, nicht die üblichen betriebswirtschaftlichen Anwendungen), dann ist es vielleicht nicht
der beste Weg. Dazu sind TransactSQL, PL/SQL etc. besser geeignet. Da im RDBMS Bereich ist die Zeit nicht still
geblieben.

Ob es sich lohnt damit zu arbeiten? Ein klares ja.
 
M

maki

Gast
>> Eigentlich interessiert mich dazu alles mögliche weil ich am überlegen bin ob es sich für mich lohnt mich damit auseinander zu setzen.

Es lohnt sich, wenn du JDBC schon kannst, wäre dass der nächste Schritt.
 
N

noisebreat

Gast
Persistenz ist ein Begriff aus der Informatik, der die Fähigkeit bezeichnet, Daten (oder Objekte) in nicht-flüchtigen Speichermedien wie Dateisystemen oder Datenbanken zu speichern.

Ich versteh ncith so genau warum das persistenter als ne normale nicht OR-DB ist. Objektorientiert ist klar hab ich ja auch so schon erkannnt aber das mit der persistenz hab ich jetzt schon paar mal mitbekommen, daher würd ich um etwas aufklärung bitten :)


lg
noise
 
S

SlaterB

Gast
JDBC kann man genauso als Persistenz eines Java-Programms bezeichnen,
so wie Konsole, AWT und HTML alles Views/ Ausgaben wären

innerhalb der Persistenz gibts verschiedene Ansätze, Hibernate ist ein Framework in diesem Bereich, damit ein Persistenz-Framework,
dass bedeutet nicht, dass JDBC was anderes ist,

OR-Mapper ist dagegen gewiss ein Begriff, der nur einem der beiden gerecht wird ;)


--------

Sinn von Persistenz-Schichten ist immer, von der Objekt-Welt in die Speicherung zu vermitteln, sei dies eine DB oder eine schlichte Textdatei,

Hibernate ist JDBC in zwei Dingen überlegen,
1. schlicht in der Menge der Funktionalität und vorgegebenen Klassen wie Session, Transaction, wie eines Caches + automatischen Abgleich geladener Daten usw.

2.
mit JDBC bist du in gewisser Hinsicht auf einzelne Arbeitsschritte angewiesen,
du kannst eine Methode
savePerson(Person x)
schreiben, mit Inhalt
createStatement(save sql kommando)

wenn du nun eine Person laden willst oder sonstige Queries brauchst, musst du wieder bei 0 anfangen,
kannst dir komplett neue SQL-Kommandos schreiben, ob sie was mit dem restlichen Programm zu tun haben oder nicht,

bei Hibernate wird die Klasse Person per Konfiguration einmalig mit einer bestimmten DB-Tabelle verknüpft,
wenn die DBTabelle Person_Table_XY3020 heißt, dann taucht dieser Name "Person_Table_XY3020" genau einmal im Programm auf und sonst nie wieder,
in der Konfiguration werden zudem Fremdschlüsselbeziehungen der Datenbank passend zu Objektbeziehungen beschrieben,

dies hat den Vorteil, dass Datenbankanfragen in einer ganz anderen Dimension beschrieben werden können, in einer eigenen neuen SQL-ähnlichen Sprache,
der Query "select p from Person p where p.nachbar = p2" (das ist keine Vereinfachung, genau so kann die Query lauten) kann eine komplette Person als Parameter für p2 übergeben werden
und das Ergebnis ist bereits ein fertiges Person-Objekt, statt mühsam aus allen Elementen eines ResultSets einen Person-Konstruktor selber zu befüllen,

manche einfache Queries wie laden/ speichern entfallen völlig und können durch Java-Kommandos wie
session.save(person);
ersetzt werden
 

noisebreath

Bekanntes Mitglied
sweet.danke slater. mit dem was ich drüber gelesen hab und dem was du hier geschriebeb hast hab ich nun vollkommen verstanden was sache ist :)
scheint ja wirklich eine tolle sache zu sein!
danke nochmals! :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
T MySQL Hibernate Mapping Datenbankprogrammierung 5
V Frage zu Hibernate-Mapping Datenbankprogrammierung 11
T Hibernate: Reverse Enigneering - kein Mapping von Beziehungen Datenbankprogrammierung 8
Eldorado Hibernate Mapping Datenbankprogrammierung 5
B Hibernate Mapping Problem Datenbankprogrammierung 3
S Hibernate Mapping Datenbankprogrammierung 3
lumo HIbernate: Could not read mapping document Datenbankprogrammierung 9
S hibernate-Mapping schlägt fehl Datenbankprogrammierung 8
F Hibernate Mapping problem Datenbankprogrammierung 2
F Type-Mapping von DB-Type zu ObjectType via Hibernate Datenbankprogrammierung 6
Y Hibernate - Problem bei Mapping Datenbankprogrammierung 7
Y Hibernate - Mapping der Beziehung zwischen 2 Tabellen Datenbankprogrammierung 2
G [Hibernate] Map von Dates Mapping mit Annotations Datenbankprogrammierung 6
G Hibernate Mapping für Interface Datenbankprogrammierung 3
S [Hibernate] Map in Map - Wie sieht Mapping Datei aus? Datenbankprogrammierung 10
C Hibernate-Mapping bei mehreren FK´s auf die selbe Tabelle Datenbankprogrammierung 12
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
C Mapping mit Annotations von 2 Tabellen Datenbankprogrammierung 22
F Mapping SQL mit Klasse Datenbankprogrammierung 7
N Enums und passendes Mapping Datenbankprogrammierung 6
G OR Mapping Datenbankprogrammierung 2
S Spaltennamen "Mapping" Datenbankprogrammierung 5
klattiator Aufklärung über OR-Mapping Datenbankprogrammierung 7
M JPA Annotations @JoinTable oder eigenes Mapping Datenbankprogrammierung 13
G OR Mapping Datenbankprogrammierung 2
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
D hibernate mit postgreSQL Datenbankprogrammierung 3
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben