Junior
Kāda ir atšķirība starp metodēm execute, executeQuery un executeUpdate?
sobes.tech AI
Atbilde no AI
executeQuery tiek izmantots SELECT vaicājumiem, tas atgriež ResultSet objektu ar rezultātiem.
executeUpdate tiek izmantots DML (INSERT, UPDATE, DELETE) vai DDL (CREATE, ALTER, DROP) komandu izpildei. Tas atgriež ietekmēto rindu skaitu.
execute var izpildīt jebkuru SQL komandu. Tas atgriež boolean: true, ja rezultāts ir ResultSet, un false citādi (ja tas ir atjaunināto rindu skaits vai nav rezultāta). ResultSet iegūst ar getResultSet(), bet atjaunināto rindu skaitu — ar getUpdateCount().
| Metode | Mērķis | Atgriežamais tips | SQL komandu piemēri |
|---|---|---|---|
executeQuery |
SELECT | ResultSet |
SELECT * FROM users |
executeUpdate |
INSERT, UPDATE, DELETE, DDL | int (ietekmēto rindu skaits) |
INSERT INTO users ..., UPDATE users ..., DROP TABLE users |
execute |
Jebkurš tips | boolean |
Jebkurš |
executeQuery piemērs:
// Savienojuma iegūšana
Connection conn = ...;
Statement stmt = conn.createStatement();
// Izpildīt SELECT
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 + ", Vārds: " + name);
}
rs.close();
stmt.close();
conn.close();
executeUpdate piemērs:
// Savienojuma iegūšana
Connection conn = ...;
Statement stmt = conn.createStatement();
// INSERT izpilde
int updatedRows = stmt.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");
System.out.println("Ievietoto rindu skaits: " + updatedRows);
stmt.close();
conn.close();
execute piemērs:
// Savienojuma iegūšana
Connection conn = ...;
Statement stmt = conn.createStatement();
// DDL izpilde
boolean isResultSet = stmt.execute("CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255))");
if (!isResultSet) {
System.out.println("Tabula izveidota vai atjaunināta, skaits: " + stmt.getUpdateCount());
}
stmt.close();
conn.close();