Sobes.tech
Junior

Kāda ir atšķirība starp metodēm execute, executeQuery un executeUpdate?

sobes.tech AI

Atbilde no AI

  • executeQuery(): Izmanto SQL komandu izpildei, kas atgriež vienu rezultātu kopu (piemēram, SELECT). Atgriež ResultSet objektu.
  • executeUpdate(): Izmanto SQL komandu izpildei, kas maina datu bāzi un atgriež atjaunināto rindu skaitu (piemēram, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Atgriež int.
  • execute(): Plaši pielietojama metode. Var izpildīt jebkuru SQL komandu. Atgriež boolean, kas norāda, vai tika atgriezts ResultSet. Ja true, rezultāts ir ResultSet. Ja false, rezultāts ir atjaunināto rindu skaits. Lai iegūtu faktiskos rezultātus, jāizmanto getResultSet() vai getUpdateCount().
Metode Mērķis Atgrieztā vērtība Piemērs lietošanai
executeQuery SELECT izpilde ResultSet Datu iegūšana no tabulas.
executeUpdate INSERT, UPDATE, DELETE, DDL izpilde int (izmainīto rindu skaits) Ierakstu pievienošana, mainīšana vai dzēšana; tabulu izveide vai dzēšana.
execute Jebkura SQL komanda boolean (ja atgriezās ResultSet, true) Kad komandas tips nav iepriekš zināms vai komanda var atgriezt datus un skaitli.

execute() piemērs:

// Pieņem, ka statement jau ir izveidots
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // ResultSet apstrāde
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Datu lasīšana
        }
    }
} else {
    // Atjaunināto rindu skaita apstrāde
    int updateCount = statement.getUpdateCount();
    // updateCount apstrāde
}