JPA - Java Persistence API mit Hibernate und der Oracle DB
4.8 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
70 students enrolled
Wishlisted Wishlist

Please confirm that you want to add JPA - Java Persistence API mit Hibernate und der Oracle DB to your Wishlist.

Add to Wishlist

JPA - Java Persistence API mit Hibernate und der Oracle DB

Schlage die Brücke zwischen der Java- und der relationalen Datenbank-Welt
Best Seller
4.8 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
70 students enrolled
Created by Christoph Tornau
Last updated 8/2017
German
Current price: $10 Original price: $60 Discount: 83% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 10 hours on-demand video
  • 2 Articles
  • 31 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Die Java-Objekt-Welt mit der Datenbankwelt optimal auf dem State-of-the-Art-Level zusammenbringen können.
  • Objekt-Relationale-Mappings über die Java Persistence API realisieren können
  • Eine effiziente und hocheffektive Programmierweise besitzen, um mit den großen Datenbeständen in Unternehmen in Java-Anwendungen umgehen zu können.
  • Die Probleme des Impedance Mismatch umgehen können
  • JPA-Anwendungen im Hinblick von Performancefragen bewerten und optimieren können
View Curriculum
Requirements
  • Grundlegende Java-Kenntnisse werden vorausgesetzt
Description

Früher oder später muss jede Applikation Daten dauerhaft abspeichern. Man nennt diesen Vorgang "Persistieren". Sehr gerne wird dies durch die Nutzung von Datenbanken getan. Geht man für das Schreiben und Lesen von Daten den manuellen Weg, so sind SQL-Statements zu formulieren, die die Daten zwischen der Datenbank und der Objektwelt händisch synchronisieren. Ein solcher Code kann bei komplexeren Systemen sehr aufwändig werden. 

Gerade an dieser Stelle schafft die Java Persistence API (JPA) für Abhilfe. Sie bietet die Möglichkeit an, Java-Objekte automatisch über einen Aufruf ohne das manuelle Schreiben von SQL-Statements in die Datenbank zu mappen, um sie dorthin zu schreiben und auch wieder zu lesen

Dieser Kurs stellt die Nutzung der Java Persistence API (JPA) vor und versetzt den Teilnehmer in die Lage, diese API effektiv für seine Projekte einzusetzen. Es lauern nämlich diverse Herausforderungen auf den Entwickler, sowohl wenn er manuell vorgeht, wie auch wenn er mit Hilfe der Java Persistence API vorgeht:

  • Datenbanken existieren häufig weitaus länger als die Java-Software existiert, die auf diese zugreift. Datenbanken beinhalten das Lebenselixier eines Unternehmens und sind historisch gewachsen. Deshalb muss sich die Java-Anwendung meist an das Datenbankschema anpassen, statt dass das Datenbankschema an die Java-Anwendung angepasst werden kann. Die Java Persistence API (JPA) verfügt hier über eine große Anzahl an Möglichkeiten, die Default-Konfiguration des Objekt-Relationalen Mappings (O/R-Mapping) zu überschreiben und sich an das Datenbankschema anzupassen. Dies ist Thema des Kurses.
  • Relationen in der objektorientierten Welt sind sehr einfach und schnell navigierbar. Dies ist in der Datenbankwelt anders, wo sie häufig noch nachgeladen werden müssen. Der Kurs zeigt, wie die Java Persistence API (JPA) genutzt werden kann, um hier performante Lösungen zu bieten.
  • Innerhalb von Vererbungshierachien existiert zwischen der objektorientierten Welt und der Datenbankwelt eine Unverträglichkeit im Objekt-Relationalen Mapping, die sich auch Impedance Mismatch nennt. Auch die Überwindung dieses Impedance Mismatch ist Thema dieses Kurses.  

Der Kurs richtet sich an den Einsteiger in die Java Persistence API (JPA). Allerdings führt er auch in komplexe Themengebiete ein, so dass der Teilnehmer zum Experten wird. Java-Kenntnisse werden für diesen Kurs vorausgesetzt.

Der Kurs fokussiert sich nicht allein auf die Theorie, sondern hält eine Balance zwischen den theoretischen Grundlagen und der praktischen Anwendung. Auf der praktischen Seite kommt Eclipse als Entwicklungsumgebung und Hibernate als JPA-Implementierung zum Einsatz. Die Daten werden in einer Oracle Express Datenbank gespeichert, welche eine speicherlimitierte Version zur großen Oracle-Datenbank darstellt.

Who is the target audience?
  • Softwareentwickler, die große Mengen an Daten vor allem in Webapplikationen nutzen müssen
  • Interessierte, die das OR-Mapping als Brücke zwischen der Objekt- und der relationalen Welt kennen lernen wollen
  • Entwickler, die in die Welt der großen und professionellen Applikationen vorstoßen wollen, um in dieser einen lukrativen Job zu erlangen.
  • All diejenigen, die sich über die Effektivität ihrer Programmierung Gedanken machen.
Compare to Other Databases Courses
Curriculum For This Course
120 Lectures
10:09:16
+
Einführung in den Kurs
3 Lectures 12:30

Die Java Persistence API (JPA) wird zur Synchronisation der Objekte in der Java-Welt und der relationalen Datenbank genutzt. Diese Synchronisation geschieht meist voll transparent.

Preview 06:55

Kurze Vorstellung des Autors des Kurses, die eine Erklärung beinhaltet, warum ich mich als Dozent dieses Kurses besonders eigne. Warum ist es sinnvoll die Java Persistance API zu erlernen?

Preview 02:17

Das Kursprojekt, welches uns in den Praxislektionen begleiten wird, wird in diesem Video vorgestellt.

Preview 03:18
+
Hands On: Installation der Arbeitsumgebung
10 Lectures 46:36

Überblick über die einzelnen Punkte des Installationsprozesses und Erklärung, warum wir einiges an Software installieren müssen, um die Java Persistence API (JPA) in Aktion zu erleben.

Preview 03:52

Download des Java JDKs von Oracle und Installation desselben. Java ist die Grundlage der JPA, der Entwicklungsumgebung Eclipse und auch des Oracle SQL Developers.

Java installieren
02:27

Download und Installation der Oracle Express Edition (Oracle XE) 11g Release 2

Oracle Express Edition Datenbankserver installieren
05:03

Um nicht die Standarddatenbank der Oracle DB nutzen zu müssen, wird ein neuer Benutzer inklusive Tablespaces und Schema angelegt.

Neuen Datenbanknutzer inklusive Schema anlegen
06:27

Bis jetzt sind wir quasi blind, was unsere Datenbank betrifft. Wir wissen zwar, dass die Oracle DB als Service auf unserem System läuft. Wir können aber keine grafische Darstellung der Datenbank sehen. Aus diesem Grunde installieren wir uns den Oracle SQL Developer, ein Tool, um Datenbanken anzuzeigen.

Oracle SQL Developer installieren und Funktionsprüfung durchführen
06:01

Wer nicht auf eine Oracle Datenbank in diesem Kurs setzen möchte oder wem das Limit der kostenfreien Edition des Oracle Datenbankmanagementsystems zu niedrig ist, der kann auf ein alternatives Datenbankmanagementsystem aufsetzen, welches sich MariaDB nennt. Dies ist aber nur eine Alternative unter vielen.

Alternative: MariaDB installieren
03:42

HeidiSQL wird automatisch mit dem MariaDB-Datenbankmanagementsystem mit installiert. HeidiSQL ist die Schwester zu dem Oracle SQL Developer. Mit HeidiSQL lässt sich in die Datenbanken schauen.

Alternative: Funktionsprüfung von MariaDB mit HeidiSQL
03:14

Bei Eclipse handelt sich um eine Entwicklungsumgebung. Wir entwickeln innerhalb dieser Entwicklungsumgebung unsere Programme, die die Java Persistent API (JPA) nutzen. 

Eclipse installieren
03:49

Der JPA-Diagram-Editor ist ein Plugin innerhalb von Eclipse. Dieses Plugin eignet sich zur Visualisierung der Entities innerhalb eines Programmes, welches die Java Persistent API (JPA) nutzt.

JPA Diagram Editor installieren
02:05

Unser Java Persistent API-Projekt (JPA-Projekt) wird angelegt, indem Hibernate und auch ein Datenbanktreiber in dieses konfiguriert wird.

JPA-Projekt mit Hibernate anlegen
09:56
+
Hands On: Daten persistieren
3 Lectures 19:04

Wir schauen uns die JPA Perspektive, die sich innerhalb von Eclipse befindet, näher an.

Preview 04:25

Unsere erste Entity wird angelegt.

Preview 04:10

Jetzt geht es darum, die Entity zu persistieren. Damit ist unser erster Round-Trip geschafft. Unsere Datenbank wurde befüllt!

Preview 10:29

Fragen über die Aufbau der Architektur auf unserem Entwicklungs-PC

Architektur-Quiz
5 questions
+
Crash-Kurs SQL
9 Lectures 42:22

Die Java Persistence API (JPA) mappt nicht direkt in die Datenbank, sondern sie mappt die Objektwelt in SQL-Statements. Um Probleme, die innerhalb der JPA auftreten können, beheben zu können, muss die Structured Query Language (SQL) beherrscht werden. 

Warum überhaupt ein SQL-Crash-Kurs?
03:00

Ein kurzer Überblick über SQL und das Anwendungsgebiet von SQL.

Sinn und Nutzen der Structured Query Language (SQL)
03:32

Anlegen von Tabellen in der Datenbank mit Hilfe von SQL.

CREATE-TABLE-Statement
08:38

SQL Statements, um vorhandene Tabellen wieder abzuändern oder eine Tabelle ganz zu löschen.

Modifizieren und löschen von Tabellen (ALTER TABLE & DROP TABLE)
03:00

Aufbau von Relationen zwischen Tabellen.

Fremdschlüsselbeziehungen und Krähenfußnotation (Martin-Notation)
05:53

Inhalte von Tabellen mit Hilfe des SELECT-Statements von SQL anzeigen.

SELECT-Statement
03:18

Änderung des Inhaltes einer Tabelle mit Hilfe von INSERT und UPDATE sowie DELETE.

Hinzufügen, Modifizieren und Löschen von Tabellenzeilen (INSERT, UPDATE, DELETE)
04:51

Unterschiedliche Join-Typen auf SQL-Datenbanken.

Inner und Outer Joins sowie andere Join-Typen
07:16

Gruppierungen und Aggregatfunktionen in SQL

GROUP BY ... HAVING ...
02:54
+
Hands On: SQL-Befehle mit Oracle SQL Developer absetzen
5 Lectures 22:21

Nutzen des Oracle SQL Developers, um in der Oracle-Datenbank alle Tabellen zu entfernen und individuelle Tabellen anzulegen.

Tabellen löschen und anlegen
06:19

Den Oracle SQL Developer nutzen um vorhandene Tabellen in ihrer Struktur zu modifizieren.

Tabellen modifizieren
02:33

Den Tabelleninhalt mit dem Oracle SQL Developer modifizieren und eigene SQL-Befehle absetzen. 

Daten einfügen und löschen, SQL-Befehle absetzen
03:29

Fremdschlüsselspalte einfügen und diese mit einer anderen Tabelle innerhalb des Oracle SQL Developers verknüpfen sowie die Relation grafisch mit Krähenfußnotation sich anzeigen lassen.

Fremdschlüsselbeziehungen anlegen und visualisieren
03:56

Demonstration der Joins innerhalb des Oracle SQL Developers.

Inner Join und Outer Join über Person und Adress-Tabelle per SQL ausführen
06:04

Ausgaben unterschiedlicher SQL-Anfragen

SQL-Quiz
5 questions
+
Finden und Ändern von Objekten mit der JPA
8 Lectures 22:38

Entitys haben in der Java Persistent API einen Lebenszyklus (engl. Lifecyle). Sie können in einem Transient-, Managed-, Detached- oder Deleted-Zustand sein.

Objektlebenszyklus
05:10

Unterschiedliche Möglichkeiten, um ein Objekt anhand seiner ID aus der Datenbank zu holen. Es wird sowohl find() wie auch getReference() genutzt.

Objekte mit JPA aus der Datenbank holen
02:06

Eine der Möglichkeiten alle Objekte von einem Typ, in unserem Beispiel also Person, aus der Datenbank zu beziehen. 

Alle Objekte eines Typs erhalten
01:47

Die aus der Datenbank bezogenen Objekte werden in ihren Variablen abgeändert und wieder in die Datenbank geschrieben

Objekte abändern und persistieren der Änderung
02:23

Objekte können in der Datenbank seitdem sie aus dieser geholt worden sind, modifiziert worden sein. Sie können mit refresh() in der objektorientierten Welt aktualisiert werden.

Objekte aktualisieren
00:56

Wenn ein Objekt aus der Datenbank gelöscht werden soll, so muss dieses erst einmal von dort geholt werden, dann als zu löschend markiert werden und mit einem Ende der Transaktionsklammer dann real aus der Datenbank entfernt werden. Wichtig ist, dass damit das Objekt nicht aus der objektorientierten Welt verloren geht, sondern weiter besteht, bis keine Referenz mehr auf dieses gehalten wird und der Garbage Collector von Java es abräumt.

Objekte löschen
02:29

Nutzen des Features des Loslösens und wieder Mergen von Entity-Objekten.

Lösen und Mergen von Objekten
02:43

Das Data Access Objekt (DAO) dient als Schnittstelle zwischen der Datenbankwelt und der Objektwelt und kann ausgetauscht werden, um eine andere Implementierung nutzen zu können.

Bündlung der Zugriffe über ein Objekt: Das Data Access Object (DAO)
05:04
+
Hands On: Finden und Ändern von Objekten mit der JPA
5 Lectures 11:39

Wie kommt unser Max Mustermann wieder aus der Datenbank?

Objekte in die Datenbank schreiben und wieder auslesen
05:06

Demonstration des Unterschiedes zwisches find() und getReference(), wenn das Objekt in der Datenbank nicht vorhanden ist.

Unterschied zwischen find() und getReference()
02:33

Änderungen an Objekten durchführen und diese Änderungen in die Datenbank schreiben.

Objekte abändern und erneut persistieren
01:17

Löschen von Objekten inklusive der Demonstration, dass das Objekt auf der Java-Seite dadurch nicht verschwindet.

Objekte entfernen
02:00

Verschieben des Codes in das Data Access Object
00:43

Test des Verständnisses der Grundoperationen der JPA sowie des Data Access Objects (DAO)

Objekte schreiben, lesen, ändern und löschen mit der JPA
6 questions
+
Weiterführende Themen in Bezug der Persistierung von nur einer Klasse mit JPA
10 Lectures 28:31

Convention over Configuration wird in der Java Persistence API angewandt, um die Möglichkeit einer allgemeinen Konfiguration zu haben, die dann individuell überschrieben werden kann. Welche Möglichkeiten der Überschreibung es gibt, wird in diesem Abschnitt behandelt.

Konvention vor Konfiguration-Prinzip
02:31

Es ist auf unterschiedliche Art und Weise möglich, den Primärschlüssel, der sich hinter der @Id-Spalte der Datenbank verbirgt, zu generieren. Die Java Persistence API bietet hier umfangreiche Anpassungsmöglichkeiten, stellt aber auch gleichzeitig eine Standardkonfiguration zur Verfügung.

Generatoren für den Primärschlüssel
06:29

Änderung des Tabellennamens sowie Eindeutigkeitsforderungen

Anpassungen an die Tabelle in der Datenbank
02:45

Anpassungen der einzelnen Spalten an das Datenbankschema.

@Column: Festlegung von Spaltenspezifischen Einstellungen
04:12

Variablen in einer Klasse können entweder direkt oder über die Getter und Setter durch die Java Persistence API beschrieben und gelesen werden.

Zugriffsmodus auf die Variablen der Klasse mit @Access wählen
02:19

Mit Hilfe von @Basic lässt sich das Laden von Variableinhalten verzögern.

@Basic: Umkonfiguration von primitiven Variablen
03:03

Variablen ausschließen.

@Transient: Ausschließen von Objekt-Variablen aus der Persistierung
01:43

Die Java-Standardklassen für Zeitformate aus java.util namens Date und Calendar über @Temporal nutzen.

@Temporal: Zeitliche Werte
01:36

Große Objekte mit der Datenbank synchronisieren.

@Lob (Large Object) für große Datenmengen
01:29

Zwei unterschiedliche Möglichkeiten Java-Enumerations in die Datenbank zu bringen.

@Enumerated: Mapping von Enummerations
02:24
+
Hands On: Weiterentwicklung unserer Person-Klasse
5 Lectures 22:00

Unserer Person-Klasse wird ein Geburtsdatum hinzugefügt. Dabei gehen wir einmal über die java.util.Date-Klasse mit @Temporal-Annotation und einmal über die java.sql.Date-Klasse.

Geburtsdatum hinzufügen
06:57

Wir legen die Möglichkeit der Angabe des Geschlechtes an, indem wir eine Enumeration nutzen.

Enumeration für Geschlecht nutzen
03:43

Binärobjekte werden in die Datenbank transferiert.

Foto hinzufügen
03:16

Ein Kommentar wird hinzugefügt, der aber einen anderen Spaltennamen als den Variablennamen in Java bekommt.

Kommentar in benannter Spalte hinzufügen
02:49

Statt die Hilfstabelle zu nutzen, werden die in der Oracle Datenbank eingebauten Sequenzen genutzt.

Oracle Sequences für ID nutzen
05:15

Annotationen, die an einer Entity platziert werden können, um die Default-Konfiguration zu überschreiben.

Annotationen an einer Entity
5 questions
+
Konfiguration und programmatischer Zugriff auf die JPA
5 Lectures 17:15

Callback-Methoden werden genutzt, um der Entity-Klasse Auskunft darüber zu geben, was die JPA gerade mit ihr getan hat.

Callback-Methoden
04:28

Callback-Methoden müssen nicht unbedingt in der Entity-Klasse eingebaut werden, sondern diese können auch in einer externen Listener-Klasse vorhanden sein.

Listenerklassen für Datenbankoperationen
03:04

Wir bauen uns mit Hilfe der Callback-Methoden eine Protokollierung, mit der wir mitschreiben, welche Operationen die JPA auf unserer Datenbank ausführt.

Hands On: Protokollierung hinzufügen
05:19

Auch auf den Zustand von Entity-Objekten lässt sich zugreifen. So kann abgefragt werden, ob diese schon vollständig aus der Datenbank geladen worden sind oder nicht.

Zugriff auf den Zustand der JPA
02:32

OR-Mapping lässt sich nicht nur mit Annotationen durchführen, sondern auch mit beschreibenden XML-Dateien. Da das Mapping über Annotationen jedoch sehr viel komfortabler ist, ist das Mapping mit XML Geschichte, kann einem jedoch in Legacy-Projekten begegnen.

Konfiguration über XML statt über Annotationen
01:52
9 More Sections
About the Instructor
Christoph Tornau
4.2 Average rating
87 Reviews
8,293 Students
4 Courses
Softwarearchitekt - Software Architect

Find the English translation below

Du findest in mir einen Softwareentwickler mit langjähriger Erfahrung in unterschiedlichen Programmiersprachen und mit unterschiedlichen Systemen. Schon während meines Studiums der Informatik beschäftigte ich mich Websystemen im Bereich des Dokumentenmanagements in den Programmiersprachen Java und Python. Nach Abschluss meines Studiums arbeitete ich bei Fraunhofer und entwickelte großskalierbare Portale im Backend, wo unterschiedlichste komplexe Services auf Java EE-Basis geschaffen wurden. Nach einem Arbeitsplatzwechsel war ich im Frontend-Bereich unter JavaScript eingestellt und entwickelte eine Konkurrenzapplikation zu Google Maps. In meiner Freizeit habe ich mich mit PHP-Projekten beschäftigt. 

I am a software developer with many years of experience in different programming languages working on different systems. During my studies of computer science, I already developed web applications on the area of document management systems using the programming languages Java and Python. After completing my studies, I worked at Fraunhofer and developed large scalable portals in the backend where various complex services were created on a Java EE basis. After a change in the workplace, I was hired in the frontend area working on JavaScript and developed a competition application to Google Maps. In my spare time, I've been working on PHP projects.