%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Java}
\chead{}
\ohead{http://kohnlehome.de/java/jpa-beispiel.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
JPA-Beispiel
\end{center}


\section{Datenbank erstellen}
\begin{itemize}
\item Server starten: Netbeans $\rightarrow$ Services $\rightarrow$ Java DB $\rightarrow$ Start Server
\item Datenbank erstellen: Create Database (Name, Benutzer, Passwort)
\item Datenbankverbindung: jdbc... $\rightarrow$ Connect
\item Tabellen erstellen und mit Testdaten füllen
\end{itemize}

\section{Entity-Klassen aus der Datenbank erstellen}
\begin{itemize}
\item normales Java-Projekt erstellen
\item New $\rightarrow$ Entity Classes From Database 
\item Datenbankverbindung: jdbc... $\rightarrow$ Tabellen auswählen
\item Package: ...
\item META-INF/persistence.xml: Persistence Unit Name: ...
\end{itemize}

\section{CRUD-Operationen}
\begin{verbatim}
//---- E N T I T Y M A N A G E R + T R A N S A K T I O N ----
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Persistence-Unit-Name");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();

//---- C R E A T E ----
Pojo pojo = new Pojo();
pojo.set...
em.persist(pojo);

//---- R E A D ----
Pojo pojo = em.find(Pojo.class, 1); // Primary Key

// oder

Query query = em.createQuery("SELECT pojo FROM Pojo pojo");
List<Pojo> list = query.getResultList();
for(Pojo pojo : list){
	... = pojo ...
}

//---- U P D A T E ----
pojo.set...

//---- D E L E T E ----
em.remove(pojo);

//---- E N D E ----
em.getTransaction().commit();
em.close();
emf.close();
\end{verbatim}






\end{document}
