Sobes.tech
Junior

რა განსხვავებაა execute, executeQuery და executeUpdate მეთოდებს შორის?

sobes.tech AI

პასუხი AI-სგან

executeQuery გამოიყენება SELECT შეკვეთებისთვის, აბრუნებს ResultSet ობიექტს შედეგებით.

executeUpdate გამოიყენება DML (INSERT, UPDATE, DELETE) ან DDL (CREATE, ALTER, DROP) ბრძანებების შესასრულებლად. აბრუნებს გავლენას მიცემული ხაზების რაოდენობას.

execute შეიძლება შეასრულოს ნებისმიერი SQL ბრძანება. აბრუნებს boolean-ს: true, თუ შედეგი არის ResultSet, და false სხვა შემთხვევაში (თუ ეს არის განახლებული ხაზების რაოდენობა ან შედეგი არ არის). ResultSet-ის მისაღებად გამოიყენება getResultSet(), განახლებული ხაზების რაოდენობის მისაღებად — getUpdateCount().

მეთოდი დანიშნულება დაბრუნებული ტიპი SQL ბრძანებების მაგალითები
executeQuery SELECT ResultSet SELECT * FROM users
executeUpdate INSERT, UPDATE, DELETE, DDL int (გავლენას მიცემული ხაზები) INSERT INTO users ..., UPDATE users ..., DROP TABLE users
execute ნებისმიერი ტიპი boolean ნებისმიერი

executeQuery გამოყენების მაგალითი:

// კავშირი მიღება
Connection conn = ...;
Statement stmt = conn.createStatement();
// 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 + ", სახელი: " + name);
}
rs.close();
stmt.close();
conn.close();

executeUpdate გამოყენების მაგალითი:

// კავშირი მიღება
Connection conn = ...;
Statement stmt = conn.createStatement();
// INSERT-ის შესრულება
int updatedRows = stmt.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");
System.out.println("შეყვანილი ხაზები: " + updatedRows);
stmt.close();
conn.close();

execute გამოყენების მაგალითი:

// კავშირი მიღება
Connection conn = ...;
Statement stmt = conn.createStatement();
// DDL-ის შესრულება
boolean isResultSet = stmt.execute("CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255))");
if (!isResultSet) {
    System.out.println("ტაბლია შექმნილი ან განახლებულია, რაოდენობა: " + stmt.getUpdateCount());
}
stmt.close();
conn.close();