Spec-Zone .ru
спецификации, руководства, описания, API

21.3.6.2. Используя JDBC Statement Объекты Выполнить SQL

Statement объекты позволяют Вам выполнять основные SQL-запросы и получать результаты через ResultSet class, который описывается позже.

Создать a Statement экземпляр, Вы вызываете createStatement() метод на Connection объект Вы получили использование одного из DriverManager.getConnection() или DataSource.getConnection() методы, описанные ранее.

Как только у Вас есть a Statement экземпляр, можно выполнить a SELECT запрос, вызывая executeQuery(String) метод с SQL Вы хотите использовать.

Чтобы обновить данные в базе данных, используйте executeUpdate(String SQL) метод. Этот метод возвращает число строк, соответствующих оператором обновления, не числом строк, которые были изменены.

Если Вы не знаете заранее, будет ли SQL-оператор a SELECT или UPDATE/INSERT, тогда можно использовать execute(String SQL) метод. Этот метод возвратит true, если SQL-запрос был a SELECT, или ложь, если это было UPDATE, INSERT, или DELETE оператор. Если оператор был a SELECT запрос, можно получить результаты, вызывая getResultSet() метод. Если оператор был UPDATE, INSERT, или DELETE оператор, можно получить количество строк, на которое влияют, вызывая getUpdateCount() на Statement экземпляр.

Пример 21.2. Connector/J: Используя java.sql. Оператор, чтобы выполнить aSELECT запрос

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.sql.ResultSet;// assume that conn is an already created JDBC connection (see previous examples)Statement stmt = null;ResultSet rs = null;try {    stmt = conn.createStatement();    rs = stmt.executeQuery("SELECT foo FROM bar");    // or alternatively, if you don't know ahead of time that    // the query will be a SELECT...    if (stmt.execute("SELECT foo FROM bar")) {        rs = stmt.getResultSet();    }    // Now do something with the ResultSet ....}catch (SQLException ex){    // handle any errors    System.out.println("SQLException: " + ex.getMessage());    System.out.println("SQLState: " + ex.getSQLState());    System.out.println("VendorError: " + ex.getErrorCode());}finally {    // it is a good idea to release    // resources in a finally{} block    // in reverse-order of their creation    // if they are no-longer needed    if (rs != null) {        try {            rs.close();        } catch (SQLException sqlEx) { } // ignore        rs = null;    }    if (stmt != null) {        try {            stmt.close();        } catch (SQLException sqlEx) { } // ignore        stmt = null;    }}