Class QueryRunner
- java.lang.Object
-
- org.apache.commons.dbutils.AbstractQueryRunner
-
- org.apache.commons.dbutils.QueryRunner
-
public class QueryRunner extends AbstractQueryRunner
Executes SQL queries with pluggable strategies for handlingResultSets. This class is thread safe.- See Also:
ResultSetHandler
-
-
Field Summary
-
Fields inherited from class org.apache.commons.dbutils.AbstractQueryRunner
ds
-
-
Constructor Summary
Constructors Constructor Description QueryRunner()Constructor for QueryRunner.QueryRunner(boolean pmdKnownBroken)Constructor for QueryRunner that controls the use ofParameterMetaData.QueryRunner(javax.sql.DataSource ds)Constructor for QueryRunner that takes aDataSourceto use.QueryRunner(javax.sql.DataSource ds, boolean pmdKnownBroken)Constructor for QueryRunner that takes aDataSourceand controls the use ofParameterMetaData.QueryRunner(javax.sql.DataSource ds, boolean pmdKnownBroken, StatementConfiguration stmtConfig)Constructor for QueryRunner that takes aDataSource, aStatementConfiguration, and controls the use ofParameterMetaData.QueryRunner(javax.sql.DataSource ds, StatementConfiguration stmtConfig)Constructor for QueryRunner that takes aDataSourceto use and aStatementConfiguration.QueryRunner(StatementConfiguration stmtConfig)Constructor for QueryRunner that takes aStatementConfigurationto configure statements when preparing them.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int[]batch(java.lang.String sql, java.lang.Object[][] params)Execute a batch of SQL INSERT, UPDATE, or DELETE queries.private int[]batch(java.sql.Connection conn, boolean closeConn, java.lang.String sql, java.lang.Object[][] params)Calls update after checking the parameters to ensure nothing is null.int[]batch(java.sql.Connection conn, java.lang.String sql, java.lang.Object[][] params)Execute a batch of SQL INSERT, UPDATE, or DELETE queries.intexecute(java.lang.String sql, java.lang.Object... params)Execute an SQL statement, including a stored procedure call, which does not return any result sets.<T> java.util.List<T>execute(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Execute an SQL statement, including a stored procedure call, which returns one or more result sets.private intexecute(java.sql.Connection conn, boolean closeConn, java.lang.String sql, java.lang.Object... params)Invokes the stored procedure via update after checking the parameters to ensure nothing is null.private <T> java.util.List<T>execute(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Invokes the stored procedure via update after checking the parameters to ensure nothing is null.intexecute(java.sql.Connection conn, java.lang.String sql, java.lang.Object... params)Execute an SQL statement, including a stored procedure call, which does not return any result sets.<T> java.util.List<T>execute(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Execute an SQL statement, including a stored procedure call, which returns one or more result sets.<T> Tinsert(java.lang.String sql, ResultSetHandler<T> rsh)Executes the given INSERT SQL without any replacement parameters.<T> Tinsert(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Executes the given INSERT SQL statement.private <T> Tinsert(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Executes the given INSERT SQL statement.<T> Tinsert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh)Execute an SQL INSERT query without replacement parameters.<T> Tinsert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Execute an SQL INSERT query.<T> TinsertBatch(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params)Executes the given batch of INSERT SQL statements.private <T> TinsertBatch(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params)Executes the given batch of INSERT SQL statements.<T> TinsertBatch(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params)Executes the given batch of INSERT SQL statements.<T> Tquery(java.lang.String sql, java.lang.Object[] params, ResultSetHandler<T> rsh)Deprecated.<T> Tquery(java.lang.String sql, java.lang.Object param, ResultSetHandler<T> rsh)Deprecated.<T> Tquery(java.lang.String sql, ResultSetHandler<T> rsh)Executes the given SELECT SQL without any replacement parameters.<T> Tquery(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Executes the given SELECT SQL query and returns a result object.private <T> Tquery(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Calls query after checking the parameters to ensure nothing is null.<T> Tquery(java.sql.Connection conn, java.lang.String sql, java.lang.Object[] params, ResultSetHandler<T> rsh)Deprecated.<T> Tquery(java.sql.Connection conn, java.lang.String sql, java.lang.Object param, ResultSetHandler<T> rsh)Deprecated.<T> Tquery(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh)Execute an SQL SELECT query without any replacement parameters.<T> Tquery(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Execute an SQL SELECT query with replacement parameters.private voidretrieveOutParameters(java.sql.CallableStatement stmt, java.lang.Object[] params)Set the value on all theOutParameterinstances in theparamsarray using the OUT parameter values from thestmt.intupdate(java.lang.String sql)Executes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters.intupdate(java.lang.String sql, java.lang.Object param)Executes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter.intupdate(java.lang.String sql, java.lang.Object... params)Executes the given INSERT, UPDATE, or DELETE SQL statement.private intupdate(java.sql.Connection conn, boolean closeConn, java.lang.String sql, java.lang.Object... params)Calls update after checking the parameters to ensure nothing is null.intupdate(java.sql.Connection conn, java.lang.String sql)Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.intupdate(java.sql.Connection conn, java.lang.String sql, java.lang.Object param)Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.intupdate(java.sql.Connection conn, java.lang.String sql, java.lang.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 Detail
-
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); ifpmdKnownBrokenis 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
public QueryRunner(javax.sql.DataSource ds)
Constructor for QueryRunner that takes aDataSourceto use. Methods that do not take aConnectionparameter will retrieve connections from thisDataSource.- Parameters:
ds- TheDataSourceto retrieve connections from.
-
QueryRunner
public QueryRunner(StatementConfiguration stmtConfig)
Constructor for QueryRunner that takes aStatementConfigurationto configure statements when preparing them.- Parameters:
stmtConfig- The configuration to apply to statements when they are prepared.
-
QueryRunner
public QueryRunner(javax.sql.DataSource ds, boolean pmdKnownBroken)Constructor for QueryRunner that takes aDataSourceand controls the use ofParameterMetaData. Methods that do not take aConnectionparameter will retrieve connections from thisDataSource.- Parameters:
ds- TheDataSourceto retrieve connections from.pmdKnownBroken- Some drivers don't supportParameterMetaData.getParameterType(int); ifpmdKnownBrokenis 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
public QueryRunner(javax.sql.DataSource ds, StatementConfiguration stmtConfig)Constructor for QueryRunner that takes aDataSourceto use and aStatementConfiguration. Methods that do not take aConnectionparameter will retrieve connections from thisDataSource.- Parameters:
ds- TheDataSourceto retrieve connections from.stmtConfig- The configuration to apply to statements when they are prepared.
-
QueryRunner
public QueryRunner(javax.sql.DataSource ds, boolean pmdKnownBroken, StatementConfiguration stmtConfig)Constructor for QueryRunner that takes aDataSource, aStatementConfiguration, and controls the use ofParameterMetaData. Methods that do not take aConnectionparameter will retrieve connections from thisDataSource.- Parameters:
ds- TheDataSourceto retrieve connections from.pmdKnownBroken- Some drivers don't supportParameterMetaData.getParameterType(int); ifpmdKnownBrokenis 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 Detail
-
batch
public int[] batch(java.sql.Connection conn, java.lang.String sql, java.lang.Object[][] params) throws java.sql.SQLExceptionExecute 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:
java.sql.SQLException- if a database access error occurs- Since:
- DbUtils 1.1
-
batch
public int[] batch(java.lang.String sql, java.lang.Object[][] params) throws java.sql.SQLExceptionExecute a batch of SQL INSERT, UPDATE, or DELETE queries. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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:
java.sql.SQLException- if a database access error occurs- Since:
- DbUtils 1.1
-
batch
private int[] batch(java.sql.Connection conn, boolean closeConn, java.lang.String sql, java.lang.Object[][] params) throws java.sql.SQLExceptionCalls 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:
java.sql.SQLException- If there are database or parameter errors.
-
query
@Deprecated public <T> T query(java.sql.Connection conn, java.lang.String sql, java.lang.Object param, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionDeprecated.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:
java.sql.SQLException- if a database access error occurs
-
query
@Deprecated public <T> T query(java.sql.Connection conn, java.lang.String sql, java.lang.Object[] params, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionDeprecated.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:
java.sql.SQLException- if a database access error occurs
-
query
public <T> T query(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecute 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:
java.sql.SQLException- if a database access error occurs
-
query
public <T> T query(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionExecute 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:
java.sql.SQLException- if a database access error occurs
-
query
@Deprecated public <T> T query(java.lang.String sql, java.lang.Object param, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionDeprecated.Executes the given SELECT SQL with a single replacement parameter. TheConnectionis retrieved from theDataSourceset 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:
java.sql.SQLException- if a database access error occurs
-
query
@Deprecated public <T> T query(java.lang.String sql, java.lang.Object[] params, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionDeprecated.Executes the given SELECT SQL query and returns a result object. TheConnectionis retrieved from theDataSourceset 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:
java.sql.SQLException- if a database access error occurs
-
query
public <T> T query(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecutes the given SELECT SQL query and returns a result object. TheConnectionis retrieved from theDataSourceset 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:
java.sql.SQLException- if a database access error occurs
-
query
public <T> T query(java.lang.String sql, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionExecutes the given SELECT SQL without any replacement parameters. TheConnectionis retrieved from theDataSourceset 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:
java.sql.SQLException- if a database access error occurs
-
query
private <T> T query(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionCalls 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:
java.sql.SQLException- If there are database or parameter errors.
-
update
public int update(java.sql.Connection conn, java.lang.String sql) throws java.sql.SQLExceptionExecute 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:
java.sql.SQLException- if a database access error occurs
-
update
public int update(java.sql.Connection conn, java.lang.String sql, java.lang.Object param) throws java.sql.SQLExceptionExecute 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:
java.sql.SQLException- if a database access error occurs
-
update
public int update(java.sql.Connection conn, java.lang.String sql, java.lang.Object... params) throws java.sql.SQLExceptionExecute 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:
java.sql.SQLException- if a database access error occurs
-
update
public int update(java.lang.String sql) throws java.sql.SQLExceptionExecutes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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:
java.sql.SQLException- if a database access error occurs
-
update
public int update(java.lang.String sql, java.lang.Object param) throws java.sql.SQLExceptionExecutes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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:
java.sql.SQLException- if a database access error occurs
-
update
public int update(java.lang.String sql, java.lang.Object... params) throws java.sql.SQLExceptionExecutes the given INSERT, UPDATE, or DELETE SQL statement. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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:
java.sql.SQLException- if a database access error occurs
-
update
private int update(java.sql.Connection conn, boolean closeConn, java.lang.String sql, java.lang.Object... params) throws java.sql.SQLExceptionCalls 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:
java.sql.SQLException- If there are database or parameter errors.
-
insert
public <T> T insert(java.lang.String sql, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionExecutes the given INSERT SQL without any replacement parameters. TheConnectionis retrieved from theDataSourceset 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 theResultSetof auto-generated keys.- Returns:
- An object generated by the handler.
- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
-
insert
public <T> T insert(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecutes the given INSERT SQL statement. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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 theResultSetof auto-generated keys.params- Initializes the PreparedStatement's IN (i.e. '?')- Returns:
- An object generated by the handler.
- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
-
insert
public <T> T insert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionExecute 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 theResultSetof auto-generated keys.- Returns:
- An object generated by the handler.
- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
-
insert
public <T> T insert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecute 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 theResultSetof auto-generated keys.params- The query replacement parameters.- Returns:
- An object generated by the handler.
- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
-
insert
private <T> T insert(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecutes 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 theResultSetof auto-generated keys.params- The query replacement parameters.- Returns:
- An object generated by the handler.
- Throws:
java.sql.SQLException- If there are database or parameter errors.- Since:
- 1.6
-
insertBatch
public <T> T insertBatch(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params) throws java.sql.SQLExceptionExecutes the given batch of INSERT SQL statements. TheConnectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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 theResultSetof auto-generated keys.params- Initializes the PreparedStatement's IN (i.e. '?')- Returns:
- The result generated by the handler.
- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
-
insertBatch
public <T> T insertBatch(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params) throws java.sql.SQLExceptionExecutes 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 theResultSetof auto-generated keys.params- The query replacement parameters.- Returns:
- The result generated by the handler.
- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
-
insertBatch
private <T> T insertBatch(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params) throws java.sql.SQLExceptionExecutes 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 theResultSetof auto-generated keys.params- The query replacement parameters.- Returns:
- The result generated by the handler.
- Throws:
java.sql.SQLException- If there are database or parameter errors.- Since:
- 1.6
-
execute
public int execute(java.sql.Connection conn, java.lang.String sql, java.lang.Object... params) throws java.sql.SQLExceptionExecute an SQL statement, including a stored procedure call, which does not return any result sets. Any parameters which are instances ofOutParameterwill 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:
java.sql.SQLException- if a database access error occurs
-
execute
public int execute(java.lang.String sql, java.lang.Object... params) throws java.sql.SQLExceptionExecute an SQL statement, including a stored procedure call, which does not return any result sets. Any parameters which are instances ofOutParameterwill 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
Connectionis retrieved from theDataSourceset in the constructor. ThisConnectionmust 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:
java.sql.SQLException- if a database access error occurs
-
execute
public <T> java.util.List<T> execute(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecute an SQL statement, including a stored procedure call, which returns one or more result sets. Any parameters which are instances ofOutParameterwill 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:
java.sql.SQLException- if a database access error occurs
-
execute
public <T> java.util.List<T> execute(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecute an SQL statement, including a stored procedure call, which returns one or more result sets. Any parameters which are instances ofOutParameterwill 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:
java.sql.SQLException- if a database access error occurs
-
execute
private int execute(java.sql.Connection conn, boolean closeConn, java.lang.String sql, java.lang.Object... params) throws java.sql.SQLExceptionInvokes 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:
java.sql.SQLException- If there are database or parameter errors.
-
execute
private <T> java.util.List<T> execute(java.sql.Connection conn, boolean closeConn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionInvokes 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:
java.sql.SQLException- If there are database or parameter errors.
-
retrieveOutParameters
private void retrieveOutParameters(java.sql.CallableStatement stmt, java.lang.Object[] params) throws java.sql.SQLExceptionSet the value on all theOutParameterinstances in theparamsarray 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:
java.sql.SQLException- when the value could not be retrieved from the statement.
-
-