Junior
execute, executeQuery va executeUpdate metodlari orasidagi farq nima?
sobes.tech AI
AIdan javob
executeQuery SELECT soʻrovlarini bajarish uchun ishlatiladi va natijalar bilan ResultSet ob'ektini qaytaradi.
executeUpdate DML (INSERT, UPDATE, DELETE) yoki DDL (CREATE, ALTER, DROP) buyruqlarini bajarish uchun ishlatiladi. Bu operatsiya ta'sir qilgan satrlar sonini qaytaradi.
execute har qanday SQL buyruqini bajarishi mumkin. Bu boolean qiymatni qaytaradi: true, agar natija ResultSet bo'lsa, va false agar natija bo'lmasa (yangilangan satrlar soni yoki natija yo'q). ResultSetni olish uchun getResultSet() metodidan foydalaniladi, yangilangan satrlar sonini olish uchun esa getUpdateCount().
| Metod | Maqsad | Qaytish turi | SQL buyruqlari misollari |
|---|---|---|---|
executeQuery |
SELECT | ResultSet |
SELECT * FROM users |
executeUpdate |
INSERT, UPDATE, DELETE, DDL | int (yangilangan satrlar) |
INSERT INTO users ..., UPDATE users ..., DROP TABLE users |
execute |
Har qanday turdagi | boolean |
Har qanday SQL buyruqi |
executeQuery misoli:
// Ulanishni olish
Connection conn = ...;
Statement stmt = conn.createStatement();
// SELECT bajarish
ResultSet rs = stmt.executeQuery("SELECT id, name FROM users");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("ID: " + id + ", Nomi: " + name);
}
rs.close();
stmt.close();
conn.close();
executeUpdate misoli:
// Ulanishni olish
Connection conn = ...;
Statement stmt = conn.createStatement();
// INSERT bajarish
int updatedRows = stmt.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");
System.out.println("Qo'shilgan satrlar: " + updatedRows);
stmt.close();
conn.close();
execute misoli:
// Ulanishni olish
Connection conn = ...;
Statement stmt = conn.createStatement();
// DDL bajarish
boolean isResultSet = stmt.execute("CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255))");
if (!isResultSet) {
System.out.println("Yangilangan satrlar soni yoki jadval yaratildi: " + stmt.getUpdateCount());
}
stmt.close();
conn.close();