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.