Junior
execute, executeQuery ve executeUpdate metodları arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
executeQuery(): Sadece sonuç kümesi döndüren SQL operatörlerini çalıştırmak için kullanılır (örneğin,SELECToperatörleri). BirResultSetnesnesi döner.executeUpdate(): Veritabanını değiştiren ve güncellenen satır sayısını döndüren SQL operatörlerini çalıştırmak için kullanılır (örneğin,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Birintdöner.execute(): Daha genel bir yöntemdir. Herhangi bir SQL operatörünü çalıştırabilir. Birbooleandöner, bu da birResultSetdöndürülüp döndürülmediğini gösterir. Eğertrueise, sonuç birResultSet'tir. Eğerfalseise, sonuç güncellenen satır sayısıdır. Gerçek sonucu almak içingetResultSet()veyagetUpdateCount()kullanılmalıdır.
| Yöntem | Amaç | Dönen değer | Kullanım örneği |
|---|---|---|---|
executeQuery |
SELECT çalıştırmak |
ResultSet |
Bir tablodan veri almak. |
executeUpdate |
INSERT, UPDATE, DELETE, DDL çalıştırmak |
int (değiştirilen satır sayısı) |
Kayıt ekleme, değiştirme veya silme; tablolar oluşturma veya silme. |
execute |
Herhangi bir SQL operatörü | boolean (ResultSet döndüyse true) |
Operatör türü önceden bilinmiyorsa veya hem veri hem de sayım döndürebilecek operatörlerde. |
execute() kullanım örneği:
// statement'in zaten oluşturulduğu varsayılır
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// ResultSet işleme
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Veriyi okuma
}
}
} else {
// Güncellenen satır sayısını işleme
int updateCount = statement.getUpdateCount();
// updateCount ile işlem
}