Sobes.tech
Junior

Ի՞նչ է տարբերությունը execute, executeQuery և executeUpdate մեթոդների միջև։

sobes.tech AI

Պատասխան AI-ից

  • executeQuery(): Օգտագործվում է SQL հրահանգների կատարման համար, որոնք վերադարձնում են մեկ արդյունքների հավաքածու (օրինակ, SELECT). Վերադարձնում է ResultSet օբյեկտ:
  • executeUpdate(): Օգտագործվում է SQL հրահանգների կատարման համար, որոնք փոփոխում են տվյալների բազան և վերադարձնում են փոփոխված տողերի քանակը (օրինակ, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Վերադարձնում է int:
  • execute(): Ավելի բազմակողմանի մեթոդ: Կարող է կատարել ցանկացած տեսակի SQL հրահանգ: Վերադարձնում է boolean, որը ցույց է տալիս, արդյոք վերադարձվել է ResultSet. Եթե true, արդյունքը ResultSet. Եթե false, արդյունքը փոփոխված տողերի քանակն է: Արդյունքը ստանալու համար անհրաժեշտ է օգտագործել getResultSet() կամ getUpdateCount():
Մեթոդ Նպատակը Վերադարձվող արժեքը Օգտագործման օրինակ
executeQuery SELECT կատարում ResultSet Տվյալների ստացում աղյուսակից։
executeUpdate INSERT, UPDATE, DELETE, DDL կատարում int (փոփոխված տողերի քանակը) Գրառումների ավելացում, փոփոխում կամ ջնջում; աղյուսակների ստեղծում կամ ջնջում։
execute Ամեն տեսակ SQL հրահանգը boolean (եթե վերադարձվել է ResultSet, true) Երբ հրահանգի տիպը նախապես հայտնի չէ կամ հրահանգը կարող է վերադարձնել տվյալներ և հաշիվ։

execute() օգտագործման օրինակ:

// Կարծում ենք, որ statement արդեն ստեղծված է
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // ResultSet մշակումը
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Տվյալների ընթերցում
        }
    }
} else {
    // Փոփոխված տողերի քանակի մշակումը
    int updateCount = statement.getUpdateCount();
    // updateCount մշակումը
}