Junior
execute, executeQuery və executeUpdate metodları arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
executeQuery(): Yalnızca tək nəticə dəstini qaytaran SQL operatorlarını icra etmək üçün istifadə olunur (məsələn,SELECToperatorları).ResultSetobyektini qaytarır.executeUpdate(): Verilənlər bazasını dəyişən və yenilənmiş sətirlərin sayını qaytaran SQL operatorlarını icra etmək üçün istifadə olunur (məsələn,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE).intqaytarır.execute(): Daha ümumi bir metod. Hər hansı bir SQL operatorunu icra edə bilər.ResultSetqaytarılıb-qaytarılmadığını göstərənbooleanqaytarır. Əgərtrueisə, nəticəResultSet-dir. Əks halda, nəticə yenilənmiş sətirlərin sayıdır. Əsl nəticəni almaq üçüngetResultSet()və yagetUpdateCount()istifadə olunmalıdır.
| Metod | Məqsəd | Qaytarılan dəyər | İstifadə nümunəsi |
|---|---|---|---|
executeQuery |
SELECT icra etmək |
ResultSet |
Cədvəldən məlumat almaq. |
executeUpdate |
INSERT, UPDATE, DELETE, DDL icra etmək |
int (dəyişdirilmiş sətir sayı) |
Yazıları əlavə etmək, dəyişdirmək və ya silmək; cədvəllər yaratmaq və ya silmək. |
execute |
Hər hansı SQL operatoru | boolean (ResultSet qaytarılıbsa true) |
Operator növü əvvəlcədən məlum deyilsə və ya operator həm məlumat, həm də say qaytara bilərsə. |
execute() istifadə nümunəsi:
// Statement artıq yaradılıb
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// ResultSet işlənməsi
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Məlumatların oxunması
}
}
} else {
// Yenilənmiş sətir sayı işlənməsi
int updateCount = statement.getUpdateCount();
// updateCount işlənməsi
}