Class QueryRunner
ResultSet
s. This class is thread safe.- See Also:
-
Field Summary
Fields inherited from class org.apache.commons.dbutils.AbstractQueryRunner
ds
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor for QueryRunner.QueryRunner
(boolean pmdKnownBroken) Constructor for QueryRunner that controls the use ofParameterMetaData
.Constructor for QueryRunner that takes aDataSource
to use.QueryRunner
(DataSource ds, boolean pmdKnownBroken) Constructor for QueryRunner that takes aDataSource
and controls the use ofParameterMetaData
.QueryRunner
(DataSource ds, boolean pmdKnownBroken, StatementConfiguration stmtConfig) Constructor for QueryRunner that takes aDataSource
, aStatementConfiguration
, and controls the use ofParameterMetaData
.QueryRunner
(DataSource ds, StatementConfiguration stmtConfig) Constructor for QueryRunner that takes aDataSource
to use and aStatementConfiguration
.QueryRunner
(StatementConfiguration stmtConfig) Constructor for QueryRunner that takes aStatementConfiguration
to configure statements when preparing them. -
Method Summary
Modifier and TypeMethodDescriptionint[]
Execute a batch of SQL INSERT, UPDATE, or DELETE queries.private int[]
batch
(Connection conn, boolean closeConn, String sql, Object[][] params) Calls update after checking the parameters to ensure nothing is null.int[]
batch
(Connection conn, String sql, Object[][] params) Execute a batch of SQL INSERT, UPDATE, or DELETE queries.int
Execute an SQL statement, including a stored procedure call, which does not return any result sets.<T> List
<T> execute
(String sql, ResultSetHandler<T> rsh, Object... params) Execute an SQL statement, including a stored procedure call, which returns one or more result sets.private int
execute
(Connection conn, boolean closeConn, String sql, Object... params) Invokes the stored procedure via update after checking the parameters to ensure nothing is null.private <T> List
<T> execute
(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) Invokes the stored procedure via update after checking the parameters to ensure nothing is null.int
execute
(Connection conn, String sql, Object... params) Execute an SQL statement, including a stored procedure call, which does not return any result sets.<T> List
<T> execute
(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) Execute an SQL statement, including a stored procedure call, which returns one or more result sets.<T> T
insert
(String sql, ResultSetHandler<T> rsh) Executes the given INSERT SQL without any replacement parameters.<T> T
insert
(String sql, ResultSetHandler<T> rsh, Object... params) Executes the given INSERT SQL statement.private <T> T
insert
(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) Executes the given INSERT SQL statement.<T> T
insert
(Connection conn, String sql, ResultSetHandler<T> rsh) Execute an SQL INSERT query without replacement parameters.<T> T
insert
(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) Execute an SQL INSERT query.<T> T
insertBatch
(String sql, ResultSetHandler<T> rsh, Object[][] params) Executes the given batch of INSERT SQL statements.private <T> T
insertBatch
(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object[][] params) Executes the given batch of INSERT SQL statements.<T> T
insertBatch
(Connection conn, String sql, ResultSetHandler<T> rsh, Object[][] params) Executes the given batch of INSERT SQL statements.<T> T
query
(String sql, Object[] params, ResultSetHandler<T> rsh) Deprecated.<T> T
query
(String sql, Object param, ResultSetHandler<T> rsh) Deprecated.<T> T
query
(String sql, ResultSetHandler<T> rsh) Executes the given SELECT SQL without any replacement parameters.<T> T
query
(String sql, ResultSetHandler<T> rsh, Object... params) Executes the given SELECT SQL query and returns a result object.private <T> T
query
(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) Calls query after checking the parameters to ensure nothing is null.<T> T
query
(Connection conn, String sql, Object[] params, ResultSetHandler<T> rsh) Deprecated.<T> T
query
(Connection conn, String sql, Object param, ResultSetHandler<T> rsh) Deprecated.<T> T
query
(Connection conn, String sql, ResultSetHandler<T> rsh) Execute an SQL SELECT query without any replacement parameters.<T> T
query
(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) Execute an SQL SELECT query with replacement parameters.private void
retrieveOutParameters
(CallableStatement stmt, Object[] params) Set the value on all theOutParameter
instances in theparams
array using the OUT parameter values from thestmt
.int
Executes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters.int
Executes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter.int
Executes the given INSERT, UPDATE, or DELETE SQL statement.private int
update
(Connection conn, boolean closeConn, String sql, Object... params) Calls update after checking the parameters to ensure nothing is null.int
update
(Connection conn, String sql) Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.int
update
(Connection conn, String sql, Object param) Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.int
update
(Connection conn, String sql, Object... params) Execute an SQL INSERT, UPDATE, or DELETE query.Methods inherited from class org.apache.commons.dbutils.AbstractQueryRunner
close, close, close, closeQuietly, closeQuietly, closeQuietly, fillStatement, fillStatementWithBean, fillStatementWithBean, getDataSource, isPmdKnownBroken, prepareCall, prepareConnection, prepareStatement, prepareStatement, rethrow, wrap
-
Constructor Details
-
QueryRunner
public QueryRunner()Constructor for QueryRunner. -
QueryRunner
public QueryRunner(boolean pmdKnownBroken) Constructor for QueryRunner that controls the use ofParameterMetaData
.- Parameters:
pmdKnownBroken
- Some drivers don't supportParameterMetaData.getParameterType(int)
; ifpmdKnownBroken
is set to true, we won't even try it; if false, we'll try it, and if it breaks, we'll remember not to use it again.
-
QueryRunner
Constructor for QueryRunner that takes aDataSource
to use. Methods that do not take aConnection
parameter will retrieve connections from thisDataSource
.- Parameters:
ds
- TheDataSource
to retrieve connections from.
-
QueryRunner
Constructor for QueryRunner that takes aStatementConfiguration
to configure statements when preparing them.- Parameters:
stmtConfig
- The configuration to apply to statements when they are prepared.
-
QueryRunner
Constructor for QueryRunner that takes aDataSource
and controls the use ofParameterMetaData
. Methods that do not take aConnection
parameter will retrieve connections from thisDataSource
.- Parameters:
ds
- TheDataSource
to retrieve connections from.pmdKnownBroken
- Some drivers don't supportParameterMetaData.getParameterType(int)
; ifpmdKnownBroken
is set to true, we won't even try it; if false, we'll try it, and if it breaks, we'll remember not to use it again.
-
QueryRunner
Constructor for QueryRunner that takes aDataSource
to use and aStatementConfiguration
. Methods that do not take aConnection
parameter will retrieve connections from thisDataSource
.- Parameters:
ds
- TheDataSource
to retrieve connections from.stmtConfig
- The configuration to apply to statements when they are prepared.
-
QueryRunner
Constructor for QueryRunner that takes aDataSource
, aStatementConfiguration
, and controls the use ofParameterMetaData
. Methods that do not take aConnection
parameter will retrieve connections from thisDataSource
.- Parameters:
ds
- TheDataSource
to retrieve connections from.pmdKnownBroken
- Some drivers don't supportParameterMetaData.getParameterType(int)
; ifpmdKnownBroken
is set to true, we won't even try it; if false, we'll try it, and if it breaks, we'll remember not to use it again.stmtConfig
- The configuration to apply to statements when they are prepared.
-
-
Method Details
-
batch
Execute a batch of SQL INSERT, UPDATE, or DELETE queries.- Parameters:
conn
- The Connection to use to run the query. The caller is responsible for closing this Connection.sql
- The SQL to execute.params
- An array of query replacement parameters. Each row in this array is one set of batch replacement values.- Returns:
- The number of rows updated per statement.
- Throws:
SQLException
- if a database access error occurs- Since:
- DbUtils 1.1
-
batch
Execute a batch of SQL INSERT, UPDATE, or DELETE queries. TheConnection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the update will not be saved.- Parameters:
sql
- The SQL to execute.params
- An array of query replacement parameters. Each row in this array is one set of batch replacement values.- Returns:
- The number of rows updated per statement.
- Throws:
SQLException
- if a database access error occurs- Since:
- DbUtils 1.1
-
batch
private int[] batch(Connection conn, boolean closeConn, String sql, Object[][] params) throws SQLException Calls update after checking the parameters to ensure nothing is null.- Parameters:
conn
- The connection to use for the batch call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.params
- An array of query replacement parameters. Each row in this array is one set of batch replacement values.- Returns:
- The number of rows updated in the batch.
- Throws:
SQLException
- If there are database or parameter errors.
-
query
@Deprecated public <T> T query(Connection conn, String sql, Object param, ResultSetHandler<T> rsh) throws SQLException Deprecated.Execute an SQL SELECT query with a single replacement parameter. The caller is responsible for closing the connection.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to execute the query in.sql
- The query to execute.param
- The replacement parameter.rsh
- The handler that converts the results into an object.- Returns:
- The object returned by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
@Deprecated public <T> T query(Connection conn, String sql, Object[] params, ResultSetHandler<T> rsh) throws SQLException Deprecated.Execute an SQL SELECT query with replacement parameters. The caller is responsible for closing the connection.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to execute the query in.sql
- The query to execute.params
- The replacement parameters.rsh
- The handler that converts the results into an object.- Returns:
- The object returned by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Execute an SQL SELECT query with replacement parameters. The caller is responsible for closing the connection.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to execute the query in.sql
- The query to execute.rsh
- The handler that converts the results into an object.params
- The replacement parameters.- Returns:
- The object returned by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
Execute an SQL SELECT query without any replacement parameters. The caller is responsible for closing the connection.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to execute the query in.sql
- The query to execute.rsh
- The handler that converts the results into an object.- Returns:
- The object returned by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
@Deprecated public <T> T query(String sql, Object param, ResultSetHandler<T> rsh) throws SQLException Deprecated.Executes the given SELECT SQL with a single replacement parameter. TheConnection
is retrieved from theDataSource
set in the constructor.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.param
- The replacement parameter.rsh
- The handler used to create the result object from theResultSet
.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
@Deprecated public <T> T query(String sql, Object[] params, ResultSetHandler<T> rsh) throws SQLException Deprecated.Executes the given SELECT SQL query and returns a result object. TheConnection
is retrieved from theDataSource
set in the constructor.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.params
- Initialize the PreparedStatement's IN parameters with this array.rsh
- The handler used to create the result object from theResultSet
.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
Executes the given SELECT SQL query and returns a result object. TheConnection
is retrieved from theDataSource
set in the constructor.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
.params
- Initialize the PreparedStatement's IN parameters with this array.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
Executes the given SELECT SQL without any replacement parameters. TheConnection
is retrieved from theDataSource
set in the constructor.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs
-
query
private <T> T query(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Calls query after checking the parameters to ensure nothing is null.- Parameters:
conn
- The connection to use for the query call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.params
- An array of query replacement parameters. Each row in this array is one set of batch replacement values.- Returns:
- The results of the query.
- Throws:
SQLException
- If there are database or parameter errors.
-
update
Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
update
Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.param
- The replacement parameter.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
update
Execute an SQL INSERT, UPDATE, or DELETE query.- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.params
- The query replacement parameters.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
update
Executes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters. TheConnection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the update will not be saved.- Parameters:
sql
- The SQL statement to execute.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
update
Executes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter. TheConnection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the update will not be saved.- Parameters:
sql
- The SQL statement to execute.param
- The replacement parameter.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
update
Executes the given INSERT, UPDATE, or DELETE SQL statement. TheConnection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the update will not be saved.- Parameters:
sql
- The SQL statement to execute.params
- Initializes the PreparedStatement's IN (i.e. '?') parameters.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
update
private int update(Connection conn, boolean closeConn, String sql, Object... params) throws SQLException Calls update after checking the parameters to ensure nothing is null.- Parameters:
conn
- The connection to use for the update call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.params
- An array of update replacement parameters. Each row in this array is one set of update replacement values.- Returns:
- The number of rows updated.
- Throws:
SQLException
- If there are database or parameter errors.
-
insert
Executes the given INSERT SQL without any replacement parameters. TheConnection
is retrieved from theDataSource
set in the constructor.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.6
-
insert
Executes the given INSERT SQL statement. TheConnection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the insert will not be saved.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.params
- Initializes the PreparedStatement's IN (i.e. '?')- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.6
-
insert
Execute an SQL INSERT query without replacement parameters.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.6
-
insert
public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Execute an SQL INSERT query.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.params
- The query replacement parameters.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.6
-
insert
private <T> T insert(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Executes the given INSERT SQL statement.- Parameters:
conn
- The connection to use for the query call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.params
- The query replacement parameters.- Returns:
- An object generated by the handler.
- Throws:
SQLException
- If there are database or parameter errors.- Since:
- 1.6
-
insertBatch
public <T> T insertBatch(String sql, ResultSetHandler<T> rsh, Object[][] params) throws SQLException Executes the given batch of INSERT SQL statements. TheConnection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the insert will not be saved.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.params
- Initializes the PreparedStatement's IN (i.e. '?')- Returns:
- The result generated by the handler.
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.6
-
insertBatch
public <T> T insertBatch(Connection conn, String sql, ResultSetHandler<T> rsh, Object[][] params) throws SQLException Executes the given batch of INSERT SQL statements.- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.params
- The query replacement parameters.- Returns:
- The result generated by the handler.
- Throws:
SQLException
- if a database access error occurs- Since:
- 1.6
-
insertBatch
private <T> T insertBatch(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object[][] params) throws SQLException Executes the given batch of INSERT SQL statements.- Parameters:
conn
- The connection to use for the query call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.rsh
- The handler used to create the result object from theResultSet
of auto-generated keys.params
- The query replacement parameters.- Returns:
- The result generated by the handler.
- Throws:
SQLException
- If there are database or parameter errors.- Since:
- 1.6
-
execute
Execute an SQL statement, including a stored procedure call, which does not return any result sets. Any parameters which are instances ofOutParameter
will be registered as OUT parameters.Use this method when invoking a stored procedure with OUT parameters that does not return any result sets. If you are not invoking a stored procedure, or the stored procedure has no OUT parameters, consider using
update(java.sql.Connection, java.lang.String, java.lang.Object...)
. If the stored procedure returns result sets, useexecute(java.sql.Connection, java.lang.String, org.apache.commons.dbutils.ResultSetHandler, java.lang.Object...)
.- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.params
- The query replacement parameters.- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
execute
Execute an SQL statement, including a stored procedure call, which does not return any result sets. Any parameters which are instances ofOutParameter
will be registered as OUT parameters.Use this method when invoking a stored procedure with OUT parameters that does not return any result sets. If you are not invoking a stored procedure, or the stored procedure has no OUT parameters, consider using
update(java.lang.String, java.lang.Object...)
. If the stored procedure returns result sets, useexecute(java.lang.String, org.apache.commons.dbutils.ResultSetHandler, java.lang.Object...)
.The
Connection
is retrieved from theDataSource
set in the constructor. ThisConnection
must be in auto-commit mode or the update will not be saved.- Parameters:
sql
- The SQL statement to execute.params
- Initializes the CallableStatement's parameters (i.e. '?').- Returns:
- The number of rows updated.
- Throws:
SQLException
- if a database access error occurs
-
execute
public <T> List<T> execute(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Execute an SQL statement, including a stored procedure call, which returns one or more result sets. Any parameters which are instances ofOutParameter
will be registered as OUT parameters.Use this method when: a) running SQL statements that return multiple result sets; b) invoking a stored procedure that return result sets and OUT parameters. Otherwise you may wish to use
query(java.sql.Connection, java.lang.String, org.apache.commons.dbutils.ResultSetHandler, java.lang.Object...)
(if there are no OUT parameters) orexecute(java.sql.Connection, java.lang.String, java.lang.Object...)
(if there are no result sets).- Type Parameters:
T
- The type of object that the handler returns- Parameters:
conn
- The connection to use to run the query.sql
- The SQL to execute.rsh
- The result set handlerparams
- The query replacement parameters.- Returns:
- A list of objects generated by the handler
- Throws:
SQLException
- if a database access error occurs
-
execute
public <T> List<T> execute(String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Execute an SQL statement, including a stored procedure call, which returns one or more result sets. Any parameters which are instances ofOutParameter
will be registered as OUT parameters.Use this method when: a) running SQL statements that return multiple result sets; b) invoking a stored procedure that return result sets and OUT parameters. Otherwise you may wish to use
query(java.lang.String, org.apache.commons.dbutils.ResultSetHandler, java.lang.Object...)
(if there are no OUT parameters) orexecute(java.lang.String, java.lang.Object...)
(if there are no result sets).- Type Parameters:
T
- The type of object that the handler returns- Parameters:
sql
- The SQL to execute.rsh
- The result set handlerparams
- The query replacement parameters.- Returns:
- A list of objects generated by the handler
- Throws:
SQLException
- if a database access error occurs
-
execute
private int execute(Connection conn, boolean closeConn, String sql, Object... params) throws SQLException Invokes the stored procedure via update after checking the parameters to ensure nothing is null.- Parameters:
conn
- The connection to use for the update call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.params
- An array of update replacement parameters. Each row in this array is one set of update replacement values.- Returns:
- The number of rows updated.
- Throws:
SQLException
- If there are database or parameter errors.
-
execute
private <T> List<T> execute(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException Invokes the stored procedure via update after checking the parameters to ensure nothing is null.- Parameters:
conn
- The connection to use for the update call.closeConn
- True if the connection should be closed, false otherwise.sql
- The SQL statement to execute.rsh
- The result set handlerparams
- An array of update replacement parameters. Each row in this array is one set of update replacement values.- Returns:
- List of all objects generated by the ResultSetHandler for all result sets handled.
- Throws:
SQLException
- If there are database or parameter errors.
-
retrieveOutParameters
Set the value on all theOutParameter
instances in theparams
array using the OUT parameter values from thestmt
.- Parameters:
stmt
- the statement from which to retrieve OUT parameter valuesparams
- the parameter array for the statement invocation- Throws:
SQLException
- when the value could not be retrieved from the statement.
-
query(String, ResultSetHandler, Object...)