# PreparedStatement



## chris83 (3. Nov 2004)

Hallo,
ich habe eine allgmeine Frage:
Was ist der Unterschied zwischen Statement und PreparedStatement? Wenn ich irgendwelche Abfragen mache dann benutze ich immer Statement-Objekte.


----------



## abollm (3. Nov 2004)

chris83 hat gesagt.:
			
		

> Hallo,
> ich habe eine allgmeine Frage:
> Was ist der Unterschied zwischen Statement und PreparedStatement? Wenn ich irgendwelche Abfragen mache dann benutze ich immer Statement-Objekte.



Eigentlich sind vor allem die Auswirkungen unterschiedlich, d.h.

1. wenn du bestimmte SQL-Abfragen mehrmals hintereinander ausführen musst (z.B. in einer Schleife etc.), dann werden bzw. müssen die betr. Varibalen nicht jedes Mal zur Laufzeit gebunden werden, also sind i.d.R. Perforrmanz-Gewinne die Folge, sowie

2. ist es bei einem PreparedStatement wohl auch theoretisch so gut wie unmöglich, den an die DB gesendeten SQL-Code während der Laufzeit von außen zu manipulieren, da es sich bei ihnen ja um parametrisierte und zunächst deklarierte SQL-Anweisungen handelt, die vor dem eigentlichen Ausführen bereits vorkompiliert sind.

Es wird allerdings stets von einigen Zeitgenossen behauptet, dass für Einmal-Aufrufe der Statement-Aufruf schneller sei. Dagegen spricht aber wiederum die Erfahrung, dass bei üblichen SQL-Statements normale Statement-Abfragen sich _nicht_ oder nicht entscheidend performanter gegenüber den entsprechenden PreparedStatement-Abfragen verhalten.

Im übrigen hängt der Gebrauch von PreparedStatement auch immer von der realen RDBMS-Unterstützung ab. Da musst du dich halt vorher infromieren.

Also zusammenfassend als einfache Merkregel:

Im Regelfalle zunächst immer mit PreparedStatement arbeiten., sofern nicht bestimmte zwingende Gründe dagegen sprechen.


----------



## chris83 (3. Nov 2004)

danke für die auführliche Beschreibung


----------

