2015-08-02 8 views
6

Przeszedłem przez różnice między Oświadczeniem a PreparedStatement w JDBC i widziałem tak wiele zalet here i here z PreparedStatement w porównaniu z Oświadczeniem.Czy są jakieś wady przy korzystaniu z Preparedstatement w porównaniu z Oświadczeniem

Niektórzy z moich kolegów pytali, dlaczego wciąż potrzebujemy Oświadczenia i dlaczego nie jest ono przestarzałe, patrząc na zalety PreparedStatement.

Czy jest jakiś powód, dla którego nadal posiadamy Oświadczenie w JDBC API? Do obsługi dynamicznych kwerend SQL używane jest

+3

zapytania bez parametrów, które powinny zostać wykonane One –

+3

'PreparedStatement' jest implementacją interfejsu' Statement'. Twoje pytanie jest niejasne ... – alfasin

+1

Zawsze wolę używać przygotowanych stwierdzeń z powodu niższej przewagi nad stwierdzeniem. 1) PreparedStatement pomaga nam zapobiegać atakom SQL injection, ponieważ automatycznie ucieka znaki specjalne. 2) PreparedStatement pozwala nam na wykonywanie zapytań dynamicznych z wejściami parametrów. 3) Program PreparedStatement udostępnia różne typy metod ustawiających w celu ustawienia parametrów wejściowych dla zapytania. 4) PreparedStatement jest szybszy niż instrukcja. 5) PreparedStatement pomaga nam w pisaniu obiektu Kod zorientowany metodami ustawiacza 6) PreparedStatement zwraca FORWARD_ONLY ResultSet, –

Odpowiedz

0

Czy istnieje powód, dla którego nadal posiadamy Oświadczenie w JDBC API?

Tak, ponieważ jest w interfejsie API klient-serwer SQL. Jeśli nieprzygotowane instrukcje miały zostać usunięte, funkcja JDBC nie zawierałaby funkcji SQL.

Jak wspomniano w innych odpowiedziach, PreparedStatement nie ma żadnych zalet, jeśli nie ma parametrów dynamicznych. W takich przypadkach bardziej zwięzłe jest użycie nieprzygotowanego wyciągu.

Zupełnie niewymieniony w tych sprawach jest fakt, że PreparedStatement jest Suberinterface of Statement, a więc nie można go usunąć bez przeprojektowania interfejsu API. Dotyczy to raczej API Java i nie dotyczy SQL.

Powiązane problemy