%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}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Java}
\chead{}
\ohead{http://kohnlehome.de/java/mysql-maven.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
MySQL mit Maven
\end{center}

\section{Dependency}
Maven-Repository: \href{https://mvnrepository.com/artifact/mysql/mysql-connector-java}{https://mvnrepository.com/artifact/mysql/mysql-connector-java}
\begin{verbatim}
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>
\end{verbatim}

\section{Namensraum}
\begin{verbatim}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
\end{verbatim}

\newpage

\section{Connection (Verbindung mit Datenbank)}
\begin{verbatim}
String databaseName = "MeineDB";
String user = "root";
String password = "mysql";

String dbString = "jdbc:mysql://localhost:3306/" +
                databaseName +
                "?useUnicode=true&" +
                "useJDBCCompliantTimezoneShift=true&" +
                "useLegacyDatetimeCode=false&" +
                "serverTimezone=UTC";
                
Connection connection = DriverManager.getConnection(dbString, user, password);
\end{verbatim}

\section{SQL-Anweisung mit Parametern}
\subsection{Datensätze lesen}
\begin{verbatim}
String sql = "SELECT * FROM PERSON WHERE Vorname = ?";
\end{verbatim}

\subsection{Datensätze neu, ändern, löschen}
\begin{verbatim}
String sql = "INSERT INTO Tabelle(Vorname, Datum) VALUES(?, ?)";
// String sql = "UPDATE Tabelle SET Datum = ? WHERE Vorname = ?";
// String sql = "DELETE FROM Tabelle WHERE Vorname = ?";
\end{verbatim}

\section{PreparedStatement}
\begin{verbatim}
PreparedStatement statement = connection.prepareStatement(sql);
\end{verbatim}

\section{Argumente an Parameter übergeben}
\begin{verbatim}
statement.setString(1, "Horst");
statement.setString(2, "1980-01-30");
\end{verbatim}

\section{SQL-Anweisung ausführen}
\subsection{Datensätze lesen}
\begin{verbatim}
ResultSet rs = statement.executeQuery();
while(rs.next()){
    ... = rs.getString("Vorname"); 
    ... = rs.getDate("Datum"); 
}
rs.close();
\end{verbatim}

\subsection{Datensätze neu, ändern, löschen}
\begin{verbatim}
statement.executeUpdate();
\end{verbatim}


\section{Alles schließen}
\begin{verbatim}
statement.close();
connection.close();
\end{verbatim}

\end{document}
