2012-01-09 17 views
9

Proszę mi powiedzieć, który z tych dwóch metod, executeUpdate i wykonać jest najlepszy dla zapytania insert jak insert into users(name, addr, city, sex, dob) values(?,?,?,?,?); Zarówno sprawozdania byłoby wykonanie zapytania, ale które trzeba być idealnie zastosowane dla zapytania wkładki?Co używać: executeUpdate() lub execute()?

+0

prawdopodobny duplikat [PreparedStatement wykonujący pomyślnie w Oracle, ale wyjątek rzucania w Microsoft SQL] (http://stackoverflow.com/questions/8786911/preparedstatement-executing-nieskutecznie-in-oraz-przetwarzanie-wyjątku-w- mic) – axtavt

+0

Czy przeczytałeś javadoc dla każdego? Odpowiedź jest tam. – skaffman

Odpowiedz

14

Wartość zwracana jest różna. ExecuteUpdate() zwraca liczbę zaktualizowanych wierszy, co może być przydatne podczas uruchamiania instrukcji aktualizacji. W twoim przypadku nie jest to konieczne, ponieważ wiesz, ile wstawiasz rekordów. Możesz użyć jednego.

+0

Więc nie ma żadnych korzyści jako takich, używając jednego z nich, prawda? W takim przypadku nie ma znaczenia, która metoda jest używana? –

+0

Dobrze. To nie ma znaczenia. – Sjoerd

+0

Ok. Wielkie dzięki :) –

2

Zasadniczo tylko zwracana wartość jest inna. Jednakże, stwierdziłem, że za pomocą jConnect 3, aby uzyskać dostęp do Sybase ASE 15.7, funkcja execute() nie blokuje się do momentu uruchomienia wyzwalaczy i natychmiastowego zamknięcia PreparedStatement ROLL BACK aktualizacji. (Wstawianie snu 1s sprawia, że ​​działa on na jedno zapytanie, które wypróbowałem.) Natomiast executeUpdate() nie cierpi z powodu tego problemu; wydaje się, że postępuje właściwie i nie wymaga arbitralnego snu przed zamknięciem PreparedStatement.

Powiązane problemy