Для виконання запиту ми повинні у екземпляра об’єкта класа Connection одержати Statement і викликати один з його методів залежно від типу запиту:
public int executeUpdate(String sql) throws SQLException
Застосовується для SQL команд INSERT, UPDATE або DELETE. Повертає к-ть рядків над якими виконалася операція.
public ResultSet executeQuery(String sql) throws SQLException
Застосовується для SQL команди SELECT. Повертає ResultSet з якого можна витягнути інформація про шапку таблиці (ResultSetMetaData) і самі значення. Як це робиться буде показаний нижче в прикладі.
public boolean execute(String sql) throws SQLException
Даний метод повертає true/false - выполнился/не виконався запит. Застосовується в тих випадках коли SQL запит повертає декілька ResultSet'ів. Для їх отримання використовуйте getMoreResults().
Приклад:
String str="SELECT * FROM RASHOD WHERE USER_ID="+user;
System.out.println(str);
Statement statement = c.createStatement(); // створюємо оператор
ResultSet rs = statement.executeQuery(str); // виконуємо запит
ResultSetMetaData md = rs.getMetaData();
int cnt= md.getColumnCount(); // одержуємо к-ть колонок (1..cnt)
int row=0;
while(rs.next())
{
row++;
System.out.println("Row "+row); // висновок номера рядка в базі
for(int i = 1; i <= cnt; i++)
{ String name=md.getColumnName(i); // получаємо ім'я колонки
String val=rs.getString(i); // одержуємо значення
System.out.println(name+"="+val); // виводимо ім'я і значення поля
}
}
УВАГА! Застосовуйте executeUpdate/executeQuery/execute тоді коли вони доречні - не викликайте executeQuery для INSERT'а !!!