Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java 7 Grundkurs

Vom Objekt zur Datenbanktabelle - ohne SQL

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der komfortable Zugriff auf Datenbanken mit dem JPA (Java Persistence API). Vom objekttypischen Java-Zugriff zum notwendigen relationalen Zugriff für Datenbanksysteme. Hört sich einfach an, doch es gibt ein paar Dinge zu beachten.
04:03

Transkript

In diesem Video zeige ich Ihnen, wie Sie mit dem Java Persistence AP komfortabel auf Datenbanken zugreifen können. In einer Java-Anwendung halten wir unsere Daten typischerweise in Objekten vor, und diese Objekte werden in Klassen beschrieben. Hier haben wir eine solche Klasse, die heißt "Personen". Und eine solche Person hat hier drei Attribute. Eine ID vom Typ "long", und dann ein First Name und ein Last Name Attribut, jeweils vom Typ "string". Nun möchten wir diese Daten irgendwie in einer Datenbank ablegen. Und Datenbanken halten ihre Daten typischerweise in Tabellen vor. Diese Tabellen heißen auch "Relationen" und die Datenbanksysteme entsprechend "relationale Datenbanksysteme". Diese Tabelle hier heißt zum Beispiel "Personen", und sie hat drei Spalten, nämlich ID, First Name, und Last Name. In den zwei Zeilen darunter sehen wir hier zwei Datensätze, einen mit der ID 51 und einen mit der ID 86. Unsere Java-Anwendung hält nun Instanzen der Klasse "Personen" vor und arbeitet mit diesen. Ich habe diese Objekte hier als "persistent entity" bezeichnet. Ein "entity" ist ein Geschäftsobjekt, ein fachliches Objekt unserer Anwendung, auch ein POJO könnte man es nennen, also ein Plain Old Java Object. D.h., es enthält wirklich nur das, was das Objekt auszeichnet, wofür es steht. Bei unserer Person also wirklich nur die ID, den Vornamen und den Nachnamen. Keinerlei technische Dinge, z.B. für den Zugriff auf eine Datenbank. Persistent Entity bedeutet nun, dass dieses Objekt persistent gemacht werden kann. D.h., dass sein Zustand über die Laufzeit der Anwendung hinweg irgendwo gespeichert werden kann. Die Idee des Java Persistence AP ist es nun, dass es einen Entity-Manager gibt, der sich um alles kümmert, was mit dieser Datenbank zutun hat. Der Entity-Manager, wie der Name schon sagt, managt Entities. D.h. er kümmert sich darum, solche Entities in die Datenbank hineinzuschreiben oder, in der Gegenrichtung, aus einem Eintrag in einer Datenbanktabelle ein entsprechendes Java-Objekt zu erzeugen. Diesen Entity-Manager müssen Sie natürlich nicht selbst schreiben, sondern den gibt es bereits, und wie er aussehen soll, das steht in der JPA-Spezifikation. Er hat diverse Methoden, über die er von der Java-Anwendung aus angesprochen werden kann. Über die Methode "Persist" beispielsweise wird er beauftragt, für ein Objekt einen entsprechenden Eintrag in der passenden Datenbanktabelle zu erzeugen. "Find" liefert für eine gegebene ID das passende Objekt zurück. "Merge" ermöglicht das Aktualisieren eines Datenbank-Eintrags, und "remove" natürlich das Entfernen. Die Java-Anwendung muss also lediglich wissen, wie sie mit diesem Entity-Manager kommuniziert, und um alles andere kümmert er sich. Hinter den Kulissen ist das Ganze allerdings noch ein bisschen mehr Aufwand. Für den Zugriff auf das Datenbanksystem wird zuerst einmal ein entsprechender Treiber benötigt. JDBC steht für Java Database Connectivity, und das ist im Prinzip eine Hand voll Klassen, die genau wissen, wie sie zu einem speziellen Datenbanksystem verbinden müssen, und die nach oben an den Aufrufer einer standardisierte Schnittstelle zur Verfügung stellen. Wenn eine Java-Anwendung über JDBC auf eine Datenbank zugreift, muss sie also nicht wissen, was das für ein Datenbanksystem ist, denn darum kümmert sich dieser Treiber. Habe ich verschiedene Datenbanksysteme, brauche ich zwar verschiedene Treiber, aber alle bieten nach oben an den Aufrufer dieselbe standardisierte Schnittstelle an. Es gibt noch ein zweites System, das im Hintergrund werkelt, und zwar der PersistenceProvider. Dieser kümmert sich um das objektrelationale Mapping, also um das Abbilden zwischen Objekten und Relationen, also Datenbanktabellen. Es gibt verschiedene solche PersistenceProvider, z.B. Hibernate oder Toplink. So verschieden diese intern auch sein mögen, alle bieten die einheitliche JPA-Schnittstelle an, zu der auch der Entity Manager gehört. Der Entity Manager ist also der zentrale Ansprechpartner für uns, wenn wir mit diesem PersistenceProvider irgendetwas tun möchten. JPA ist nicht Teil der Java SE Spezifikation, und gehört also auch nicht zur Standardbibliothek. Damit ihre Java-Anwendung also per JPA auf ein Datenbanksystem zugreifen kann, benötigen Sie eine separate Bibliothek, die Sie zusätzlich in Ihr Projekt hineinpacken. Und Sie brauchen natürlich einen JDBC-Treiber, der zum Datenbanksystem passt, auf das Sie zugreifen möchten. Sind diese Vorbereitungen getroffen, dann steht einer komfortablen Datenbankarbeit aber nichts mehr im Wege.

Java 7 Grundkurs

Machen Sie sich mit den Grundlagen der Java-Programmierung vertraut und lernen Sie die Syntax der Sprache sowie das Konzept der objektorientierten Softwareentwicklung kennen.

8 Std. 32 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
ISBN-Nummer:978-3-8273-6149-3
Erscheinungsdatum:28.11.2011
Laufzeit:8 Std. 32 min (66 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!