18.5.4 | Einsatzgebiete |
Dynamische SQL-Anweisungen sind sehr allgemein definiert, da man lediglich einen SQL-String in der Syntax des verwendeten Datenbanksystems als Eingabe liefern muss. Dadurch eignen sie sich vor allem für die Ausführung von SQL-Anweisungen, bei denen die Anzahl an Parametern variieren kann. Als Beispiel kann man sich eine einfache Suchanfrage vorstellen, die eine Stichwortsuche mit beliebig vielen Stichworten in der Datenbank vornimmt. Da man die Anzahl der Stichworte, die der Benutzer eingibt, nicht vorher kennt, muss die WHERE-Klausel des SQL-Strings zur Laufzeit dynamisch zusammengebaut werden, wie in folgendem Beispiel gezeigt wird:String kriterien[]; // Array mit Suchkriterien Connection con; ... Statement stmt = con.createStatement(); String sql = "SELECT * FROM titel WHERE "; // Voraussetzung: mindestens 1 Suchbegriff vorhanden sql += " titel like '"+kriterien[0]+"'"; // Hänge weitere Suchkriterien an for(int i=1; i < kriterien.length; i++) { sql += " AND titel like '"+kriterien[i]+"'"; } ResultSet rs = stmt.executQuery(sql); ...