mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-22 19:59:31 +01:00
56 lines
1.6 KiB
TeX
56 lines
1.6 KiB
TeX
|
\section{Programmschnittstellen}
|
||
|
Vor- und Nachteile:\\
|
||
|
Programmzugriff:
|
||
|
\begin{itemize}
|
||
|
\item Keine SQL Injection nötig
|
||
|
\item Kompakt
|
||
|
\item spezieller Übersetzer nötig
|
||
|
\end{itemize}
|
||
|
Unterprogrammaufruf
|
||
|
\begin{itemize}
|
||
|
\item Optimierung und Typprüfung
|
||
|
\item SQL Injection möglich
|
||
|
\item Aufwändig für Programmierer
|
||
|
\end{itemize}
|
||
|
\subsection{SQL Anfrage}
|
||
|
Aufruf einer SQL Anfrage mit Index:
|
||
|
\begin{lstlisting}[language=java]
|
||
|
RecordFile index = new KeyedRecordFile("KNr","r");
|
||
|
TID tid = index.read.Key(23);
|
||
|
RecordFile saetze = new DirectRecord(Kunden", "r");
|
||
|
Record ergebnis = saetze.read(tid);
|
||
|
print(ergebnis.toString());
|
||
|
\end{lstlisting}
|
||
|
Aufruf einer SQL Anfrage ohne Index:
|
||
|
\begin{lstlisting}[language = java]
|
||
|
RecordFile saetze = new DirectRecordFile("Kunden","r");
|
||
|
Record ergebnis;
|
||
|
while (saetze.hasNext()){
|
||
|
ergebnis = saetze.next();
|
||
|
if(ergebnis.getKNr() == 23){
|
||
|
print(ergebnis);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
\end{lstlisting}
|
||
|
|
||
|
\subsection{SQL Schnittstelle}
|
||
|
\begin{enumerate}
|
||
|
\item Verbindung aufbauen
|
||
|
\begin{lstlisting}[language=java]
|
||
|
Connection DriverManager.connect(username, password, database)
|
||
|
\end{lstlisting}
|
||
|
\item Methode um eine Anfrage auszuführen
|
||
|
\begin{lstlisting}[language=java]
|
||
|
Handle Connection.executeQuery (String query);
|
||
|
\end{lstlisting}
|
||
|
\item Methode um zu prüfen, ob es weitere Ergebnisse gibt
|
||
|
\begin{lstlisting}[language=java]
|
||
|
Boolean Handle.hasNext();
|
||
|
\end{lstlisting}
|
||
|
\item Methode um überhaupt an Ergebnisse zu kommen
|
||
|
\begin{lstlisting}[language=java]
|
||
|
Boolean Handle.hasNext();
|
||
|
\end{lstlisting}
|
||
|
\end{enumerate}
|