Sobes.tech
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();