Package org.apache.commons.dbutils
Class AsyncQueryRunner
- java.lang.Object
-
- org.apache.commons.dbutils.AbstractQueryRunner
-
- org.apache.commons.dbutils.AsyncQueryRunner
-
public class AsyncQueryRunner extends AbstractQueryRunner
Executes SQL queries with pluggable strategies for handlingResultSets. This class is thread safe.- Since:
- 1.4
- See Also:
ResultSetHandler
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classAsyncQueryRunner.BatchCallableStatementDeprecated.No longer used by this class.protected classAsyncQueryRunner.QueryCallableStatement<T>Class that encapsulates the continuation for query calls.protected classAsyncQueryRunner.UpdateCallableStatementDeprecated.No longer used by this class.
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ExecutorServiceexecutorServiceprivate QueryRunnerqueryRunner-
Fields inherited from class org.apache.commons.dbutils.AbstractQueryRunner
ds
-
-
Constructor Summary
Constructors Constructor Description AsyncQueryRunner(boolean pmdKnownBroken, java.util.concurrent.ExecutorService executorService)Deprecated.UseAsyncQueryRunner(ExecutorService, QueryRunner)instead.AsyncQueryRunner(java.util.concurrent.ExecutorService executorService)Constructor for AsyncQueryRunner.AsyncQueryRunner(java.util.concurrent.ExecutorService executorService, QueryRunner queryRunner)Constructor for AsyncQueryRunner which uses a provided ExecutorService and underlying QueryRunner.AsyncQueryRunner(javax.sql.DataSource ds, boolean pmdKnownBroken, java.util.concurrent.ExecutorService executorService)Deprecated.UseAsyncQueryRunner(ExecutorService, QueryRunner)instead.AsyncQueryRunner(javax.sql.DataSource ds, java.util.concurrent.ExecutorService executorService)Deprecated.UseAsyncQueryRunner(ExecutorService, QueryRunner)instead.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.Future<int[]>batch(java.lang.String sql, java.lang.Object[][] params)Execute a batch of SQL INSERT, UPDATE, or DELETE queries.java.util.concurrent.Future<int[]>batch(java.sql.Connection conn, java.lang.String sql, java.lang.Object[][] params)Execute a batch of SQL INSERT, UPDATE, or DELETE queries.<T> java.util.concurrent.Future<T>insert(java.lang.String sql, ResultSetHandler<T> rsh)ExecutesQueryRunner.insert(String, ResultSetHandler)asynchronously.<T> java.util.concurrent.Future<T>insert(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)ExecutesQueryRunner.insert(String, ResultSetHandler, Object...)asynchronously.<T> java.util.concurrent.Future<T>insert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh)ExecutesQueryRunner.insert(Connection, String, ResultSetHandler)asynchronously.<T> java.util.concurrent.Future<T>insert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)ExecutesQueryRunner.insert(Connection, String, ResultSetHandler, Object...)asynchronously.<T> java.util.concurrent.Future<T>insertBatch(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params)QueryRunner.insertBatch(String, ResultSetHandler, Object[][])asynchronously.<T> java.util.concurrent.Future<T>insertBatch(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params)<T> java.util.concurrent.Future<T>query(java.lang.String sql, ResultSetHandler<T> rsh)Executes the given SELECT SQL without any replacement parameters.<T> java.util.concurrent.Future<T>query(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Executes the given SELECT SQL query and returns a result object.<T> java.util.concurrent.Future<T>query(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh)Execute an SQL SELECT query without any replacement parameters.<T> java.util.concurrent.Future<T>query(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params)Execute an SQL SELECT query with replacement parameters.java.util.concurrent.Future<java.lang.Integer>update(java.lang.String sql)Executes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters.java.util.concurrent.Future<java.lang.Integer>update(java.lang.String sql, java.lang.Object param)Executes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter.java.util.concurrent.Future<java.lang.Integer>update(java.lang.String sql, java.lang.Object... params)Executes the given INSERT, UPDATE, or DELETE SQL statement.java.util.concurrent.Future<java.lang.Integer>update(java.sql.Connection conn, java.lang.String sql)Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters.java.util.concurrent.Future<java.lang.Integer>update(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.java.util.concurrent.Future<java.lang.Integer>update(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
-
-
-
-
Field Detail
-
executorService
private final java.util.concurrent.ExecutorService executorService
-
queryRunner
private final QueryRunner queryRunner
-
-
Constructor Detail
-
AsyncQueryRunner
public AsyncQueryRunner(java.util.concurrent.ExecutorService executorService, QueryRunner queryRunner)Constructor for AsyncQueryRunner which uses a provided ExecutorService and underlying QueryRunner.- Parameters:
executorService- theExecutorServiceinstance used to run JDBC invocations concurrently.queryRunner- theQueryRunnerinstance to use for the queries.- Since:
- DbUtils 1.5
-
AsyncQueryRunner
public AsyncQueryRunner(java.util.concurrent.ExecutorService executorService)
Constructor for AsyncQueryRunner.- Parameters:
executorService- theExecutorServiceinstance used to run JDBC invocations concurrently.
-
AsyncQueryRunner
@Deprecated public AsyncQueryRunner(boolean pmdKnownBroken, java.util.concurrent.ExecutorService executorService)Deprecated.UseAsyncQueryRunner(ExecutorService, QueryRunner)instead. Constructor for AsyncQueryRunner 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.executorService- theExecutorServiceinstance used to run JDBC invocations concurrently.
-
AsyncQueryRunner
@Deprecated public AsyncQueryRunner(javax.sql.DataSource ds, java.util.concurrent.ExecutorService executorService)Deprecated.UseAsyncQueryRunner(ExecutorService, QueryRunner)instead. Constructor for AsyncQueryRunner that takes aDataSource. Methods that do not take aConnectionparameter will retrieve connections from thisDataSource.- Parameters:
ds- TheDataSourceto retrieve connections from.executorService- theExecutorServiceinstance used to run JDBC invocations concurrently.
-
AsyncQueryRunner
@Deprecated public AsyncQueryRunner(javax.sql.DataSource ds, boolean pmdKnownBroken, java.util.concurrent.ExecutorService executorService)Deprecated.UseAsyncQueryRunner(ExecutorService, QueryRunner)instead. Constructor for AsyncQueryRunner that take 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.executorService- theExecutorServiceinstance used to run JDBC invocations concurrently.
-
-
Method Detail
-
batch
public java.util.concurrent.Future<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- TheConnectionto 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:
- A
Futurewhich returns the number of rows updated per statement. - Throws:
java.sql.SQLException- if a database access error occurs
-
batch
public java.util.concurrent.Future<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:
- A
Futurewhich returns the number of rows updated per statement. - Throws:
java.sql.SQLException- if a database access error occurs
-
query
public <T> java.util.concurrent.Future<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:
- A
Futurewhich returns the result of the query call. - Throws:
java.sql.SQLException- if a database access error occurs
-
query
public <T> java.util.concurrent.Future<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:
- A
Futurewhich returns the result of the query call. - Throws:
java.sql.SQLException- if a database access error occurs
-
query
public <T> java.util.concurrent.Future<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:
- A
Futurewhich returns the result of the query call. - Throws:
java.sql.SQLException- if a database access error occurs
-
query
public <T> java.util.concurrent.Future<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:
- A
Futurewhich returns the result of the query call. - Throws:
java.sql.SQLException- if a database access error occurs
-
update
public java.util.concurrent.Future<java.lang.Integer> 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:
- A
Futurewhich returns the number of rows updated. - Throws:
java.sql.SQLException- if a database access error occurs
-
update
public java.util.concurrent.Future<java.lang.Integer> 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:
- A
Futurewhich returns the number of rows updated. - Throws:
java.sql.SQLException- if a database access error occurs
-
update
public java.util.concurrent.Future<java.lang.Integer> 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:
- A
Futurewhich returns the number of rows updated. - Throws:
java.sql.SQLException- if a database access error occurs
-
update
public java.util.concurrent.Future<java.lang.Integer> 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:
- A
Futurewhich returns the number of rows updated. - Throws:
java.sql.SQLException- if a database access error occurs
-
update
public java.util.concurrent.Future<java.lang.Integer> 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:
- A
Futurewhich returns the number of rows updated. - Throws:
java.sql.SQLException- if a database access error occurs
-
update
public java.util.concurrent.Future<java.lang.Integer> 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:
- A
Futurewhich returns the number of rows updated. - Throws:
java.sql.SQLException- if a database access error occurs
-
insert
public <T> java.util.concurrent.Future<T> insert(java.lang.String sql, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionExecutesQueryRunner.insert(String, ResultSetHandler)asynchronously.- Type Parameters:
T- Return type expected- Parameters:
sql- SQL insert statement to executersh-ResultSetHandlerfor handling the results- Returns:
Futurethat executes a query runner insert- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
- See Also:
QueryRunner.insert(String, ResultSetHandler)
-
insert
public <T> java.util.concurrent.Future<T> insert(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecutesQueryRunner.insert(String, ResultSetHandler, Object...)asynchronously.- Type Parameters:
T- Return type expected- Parameters:
sql- SQL insert statement to executersh-ResultSetHandlerfor handling the resultsparams- Parameter values for substitution in the SQL statement- Returns:
Futurethat executes a query runner insert- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
- See Also:
QueryRunner.insert(String, ResultSetHandler, Object...)
-
insert
public <T> java.util.concurrent.Future<T> insert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh) throws java.sql.SQLExceptionExecutesQueryRunner.insert(Connection, String, ResultSetHandler)asynchronously.- Type Parameters:
T- Return type expected- Parameters:
conn-Connectionto use to execute the SQL statementsql- SQL insert statement to executersh-ResultSetHandlerfor handling the results- Returns:
Futurethat executes a query runner insert- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
- See Also:
QueryRunner.insert(Connection, String, ResultSetHandler)
-
insert
public <T> java.util.concurrent.Future<T> insert(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object... params) throws java.sql.SQLExceptionExecutesQueryRunner.insert(Connection, String, ResultSetHandler, Object...)asynchronously.- Type Parameters:
T- Return type expected- Parameters:
conn-Connectionto use to execute the SQL statementsql- SQL insert statement to executersh-ResultSetHandlerfor handling the resultsparams- Parameter values for substitution in the SQL statement- Returns:
Futurethat executes a query runner insert- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
- See Also:
QueryRunner.insert(Connection, String, ResultSetHandler, Object...)
-
insertBatch
public <T> java.util.concurrent.Future<T> insertBatch(java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params) throws java.sql.SQLExceptionQueryRunner.insertBatch(String, ResultSetHandler, Object[][])asynchronously.- Type Parameters:
T- Return type expected- Parameters:
sql- SQL insert statement to executersh-ResultSetHandlerfor handling the resultsparams- An array of query replacement parameters. Each row in this array is one set of batch replacement values.- Returns:
Futurethat executes a query runner batch insert- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
- See Also:
QueryRunner.insertBatch(String, ResultSetHandler, Object[][])
-
insertBatch
public <T> java.util.concurrent.Future<T> insertBatch(java.sql.Connection conn, java.lang.String sql, ResultSetHandler<T> rsh, java.lang.Object[][] params) throws java.sql.SQLException- Type Parameters:
T- Return type expected- Parameters:
conn-Connectionto use to execute the SQL statementsql- SQL insert statement to executersh-ResultSetHandlerfor handling the resultsparams- An array of query replacement parameters. Each row in this array is one set of batch replacement values.- Returns:
Futurethat executes a query runner batch insert- Throws:
java.sql.SQLException- if a database access error occurs- Since:
- 1.6
- See Also:
QueryRunner.insertBatch(Connection, String, ResultSetHandler, Object[][])
-
-