mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-29 15:15:01 +01:00
57 lines
1.6 KiB
TeX
57 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
|
|
%TODO das soll vermutlich weder vom Typ Boolean sein, noch hasNext() heißen
|
|
\begin{lstlisting}[language=java]
|
|
Boolean Handle.hasNext();
|
|
\end{lstlisting}
|
|
\end{enumerate}
|