7.2 Использование объектов JDBC Statement для выполнения SQL-запросов
Объекты Statement позволяют выполнять базовые SQL-запросы и получать результаты через класс ResultSet, который описан позже.
Для создания экземпляра Statement, вызовите метод createStatement() на объекте Connection, полученном с помощью одного из методов DriverManager.getConnection() или DataSource.getConnection(), описанных ранее.
После получения экземпляра Statement, вы можете выполнить запрос, вызвав метод executeQuery(String) с используемым SQL-запросом.
Для обновления данных в базе данных, используйте метод executeUpdate(String SQL). Этот метод возвращает количество строк, соответствующих обновляющему запросу, а не количество изменённых строк.
Если заранее неизвестно, будет ли SQL-запрос или , то вы можете использовать метод execute(String SQL). Этот метод вернёт true, если SQL-запрос был запрос, или false, если это был запрос , или запрос. Если это был запрос, вы можете получить результаты, вызвав метод getResultSet(). Если это был запрос , , или запрос, вы можете получить количество затронутых строк, вызвав getUpdateCount() на экземпляре Statement.
Пример 7.2 Connector/J: Использование java.sql.Statement для выполнения запроса SELECT
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;
}
}
© 2025 Oracle
Licensed under the GPLv2 License.