Sobes.tech
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, SELECT operatörleri). Bir ResultSet nesnesi 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). Bir int döner.
  • execute(): Daha genel bir yöntemdir. Herhangi bir SQL operatörünü çalıştırabilir. Bir boolean döner, bu da bir ResultSet döndürülüp döndürülmediğini gösterir. Eğer true ise, sonuç bir ResultSet'tir. Eğer false ise, sonuç güncellenen satır sayısıdır. Gerçek sonucu almak için getResultSet() veya getUpdateCount() 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
}