latexandmore/IDB/idb_skript_greeny/Programmschnittstellen.tex

57 lines
1.6 KiB
TeX
Raw Permalink Normal View History

2014-02-13 16:44:53 +01:00
\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}
2014-02-15 21:25:03 +01:00
\item Methode um überhaupt an Ergebnisse zu kommen
%TODO das soll vermutlich weder vom Typ Boolean sein, noch hasNext() heißen
2014-02-13 16:44:53 +01:00
\begin{lstlisting}[language=java]
Boolean Handle.hasNext();
\end{lstlisting}
\end{enumerate}