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 մշակումը
}