|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.dbutils.QueryRunner
public class QueryRunner
Executes SQL queries with pluggable strategies for handling
ResultSets. This class is thread safe.
ResultSetHandler| Field Summary | |
|---|---|
protected DataSource |
ds
The DataSource to retrieve connections from. |
| Constructor Summary | |
|---|---|
QueryRunner()
Constructor for QueryRunner. |
|
QueryRunner(boolean pmdKnownBroken)
Constructor for QueryRunner, allows workaround for Oracle drivers |
|
QueryRunner(DataSource ds)
Constructor for QueryRunner, allows workaround for Oracle drivers. |
|
QueryRunner(DataSource ds,
boolean pmdKnownBroken)
Constructor for QueryRunner, allows workaround for Oracle drivers. |
|
| Method Summary | ||
|---|---|---|
int[] |
batch(Connection conn,
String sql,
Object[][] params)
Execute a batch of SQL INSERT, UPDATE, or DELETE queries. |
|
int[] |
batch(String sql,
Object[][] params)
Execute a batch of SQL INSERT, UPDATE, or DELETE queries. |
|
protected void |
close(Connection conn)
Close a Connection. |
|
protected void |
close(ResultSet rs)
Close a ResultSet. |
|
protected void |
close(Statement stmt)
Close a Statement. |
|
void |
fillStatement(PreparedStatement stmt,
Object... params)
Fill the PreparedStatement replacement parameters with
the given objects. |
|
void |
fillStatementWithBean(PreparedStatement stmt,
Object bean,
PropertyDescriptor[] properties)
Fill the PreparedStatement replacement parameters with the
given object's bean property values. |
|
void |
fillStatementWithBean(PreparedStatement stmt,
Object bean,
String... propertyNames)
Fill the PreparedStatement replacement parameters with the
given object's bean property values. |
|
DataSource |
getDataSource()
Returns the DataSource this runner is using. |
|
protected Connection |
prepareConnection()
Factory method that creates and initializes a Connection object. |
|
protected PreparedStatement |
prepareStatement(Connection conn,
String sql)
Factory method that creates and initializes a PreparedStatement object for the given SQL. |
|
|
query(Connection conn,
String sql,
Object[] params,
ResultSetHandler<T> rsh)
Deprecated. Use query(Connection,String,ResultSetHandler,Object...) instead |
|
|
query(Connection conn,
String sql,
Object param,
ResultSetHandler<T> rsh)
Deprecated. Use query(Connection, String, ResultSetHandler, Object...) |
|
|
query(Connection conn,
String sql,
ResultSetHandler<T> rsh)
Execute an SQL SELECT query without any replacement parameters. |
|
|
query(Connection conn,
String sql,
ResultSetHandler<T> rsh,
Object... params)
Execute an SQL SELECT query with replacement parameters. |
|
|
query(String sql,
Object[] params,
ResultSetHandler<T> rsh)
Deprecated. Use query(String, ResultSetHandler, Object...) |
|
|
query(String sql,
Object param,
ResultSetHandler<T> rsh)
Deprecated. Use query(String, ResultSetHandler, Object...) |
|
|
query(String sql,
ResultSetHandler<T> rsh)
Executes the given SELECT SQL without any replacement parameters. |
|
|
query(String sql,
ResultSetHandler<T> rsh,
Object... params)
Executes the given SELECT SQL query and returns a result object. |
|
protected void |
rethrow(SQLException cause,
String sql,
Object... params)
Throws a new exception with a more informative error message. |
|
int |
update(Connection conn,
String sql)
Execute an SQL INSERT, UPDATE, or DELETE query without replacement parameters. |
|
int |
update(Connection conn,
String sql,
Object... params)
Execute an SQL INSERT, UPDATE, or DELETE query. |
|
int |
update(Connection conn,
String sql,
Object param)
Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter. |
|
int |
update(String sql)
Executes the given INSERT, UPDATE, or DELETE SQL statement without any replacement parameters. |
|
int |
update(String sql,
Object... params)
Executes the given INSERT, UPDATE, or DELETE SQL statement. |
|
int |
update(String sql,
Object param)
Executes the given INSERT, UPDATE, or DELETE SQL statement with a single replacement parameter. |
|
protected ResultSet |
wrap(ResultSet rs)
Wrap the ResultSet in a decorator before processing it. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final DataSource ds
| Constructor Detail |
|---|
public QueryRunner()
public QueryRunner(boolean pmdKnownBroken)
pmdKnownBroken - Oracle drivers don't support ParameterMetaData.getParameterType(int);
if pmdKnownBroken 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.public QueryRunner(DataSource ds)
Connection parameter will retrieve connections from this
DataSource.
ds - The DataSource to retrieve connections from.
public QueryRunner(DataSource ds,
boolean pmdKnownBroken)
Connection parameter will retrieve connections from this
DataSource.
ds - The DataSource to retrieve connections from.pmdKnownBroken - Oracle drivers don't support ParameterMetaData.getParameterType(int);
if pmdKnownBroken 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.| Method Detail |
|---|
public int[] batch(Connection conn,
String sql,
Object[][] params)
throws SQLException
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.
SQLException - if a database access error occurs
public int[] batch(String sql,
Object[][] params)
throws SQLException
Connection is retrieved from the DataSource
set in the constructor. This Connection must be in
auto-commit mode or the update will not be saved.
sql - The SQL to execute.params - An array of query replacement parameters. Each row in
this array is one set of batch replacement values.
SQLException - if a database access error occurs
public void fillStatement(PreparedStatement stmt,
Object... params)
throws SQLException
PreparedStatement replacement parameters with
the given objects.
stmt - PreparedStatement to fillparams - Query replacement parameters; null is a valid
value to pass in.
SQLException - if a database access error occurs
public void fillStatementWithBean(PreparedStatement stmt,
Object bean,
PropertyDescriptor[] properties)
throws SQLException
PreparedStatement replacement parameters with the
given object's bean property values.
stmt - PreparedStatement to fillbean - a JavaBean objectproperties - an ordered array of properties; this gives the order to insert
values in the statement
SQLException - if a database access error occurs
public void fillStatementWithBean(PreparedStatement stmt,
Object bean,
String... propertyNames)
throws SQLException
PreparedStatement replacement parameters with the
given object's bean property values.
stmt - PreparedStatement to fillbean - a JavaBean objectpropertyNames - an ordered array of property names (these should match the
getters/setters); this gives the order to insert values in the
statement
SQLException - if a database access error occurspublic DataSource getDataSource()
DataSource this runner is using.
QueryRunner methods always call this method to get the
DataSource so subclasses can provide specialized
behavior.
protected PreparedStatement prepareStatement(Connection conn,
String sql)
throws SQLException
PreparedStatement object for the given SQL.
QueryRunner methods always call this method to prepare
statements for them. Subclasses can override this method to provide
special PreparedStatement configuration if needed. This implementation
simply calls conn.prepareStatement(sql).
conn - The Connection used to create the
PreparedStatementsql - The SQL statement to prepare.
PreparedStatement.
SQLException - if a database access error occurs
protected Connection prepareConnection()
throws SQLException
Connection object. QueryRunner methods
always call this method to retrieve connections from its DataSource.
Subclasses can override this method to provide
special Connection configuration if needed. This
implementation simply calls ds.getConnection().
Connection.
SQLException - if a database access error occurs
public <T> T query(Connection conn,
String sql,
Object param,
ResultSetHandler<T> rsh)
throws SQLException
query(Connection, String, ResultSetHandler, Object...)
T - The type of object that the handler returnsconn - 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.
SQLException - if a database access error occurs
public <T> T query(Connection conn,
String sql,
Object[] params,
ResultSetHandler<T> rsh)
throws SQLException
query(Connection,String,ResultSetHandler,Object...) instead
T - The type of object that the handler returnsconn - 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.
SQLException - if a database access error occurs
public <T> T query(Connection conn,
String sql,
ResultSetHandler<T> rsh,
Object... params)
throws SQLException
T - The type of object that the handler returnsconn - 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.
SQLException - if a database access error occurs
public <T> T query(Connection conn,
String sql,
ResultSetHandler<T> rsh)
throws SQLException
T - The type of object that the handler returnsconn - The connection to execute the query in.sql - The query to execute.rsh - The handler that converts the results into an object.
SQLException - if a database access error occurs
public <T> T query(String sql,
Object param,
ResultSetHandler<T> rsh)
throws SQLException
query(String, ResultSetHandler, Object...)
Connection is retrieved from the
DataSource set in the constructor.
T - The type of object that the handler returnssql - The SQL statement to execute.param - The replacement parameter.rsh - The handler used to create the result object from
the ResultSet.
SQLException - if a database access error occurs
public <T> T query(String sql,
Object[] params,
ResultSetHandler<T> rsh)
throws SQLException
query(String, ResultSetHandler, Object...)
Connection is retrieved from the
DataSource set in the constructor.
T - The type of object that the handler returnssql - 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
the ResultSet.
SQLException - if a database access error occurs
public <T> T query(String sql,
ResultSetHandler<T> rsh,
Object... params)
throws SQLException
Connection is retrieved from the
DataSource set in the constructor.
T - The type of object that the handler returnssql - The SQL statement to execute.rsh - The handler used to create the result object from
the ResultSet.params - Initialize the PreparedStatement's IN parameters with
this array.
SQLException - if a database access error occurs
public <T> T query(String sql,
ResultSetHandler<T> rsh)
throws SQLException
Connection is retrieved from the
DataSource set in the constructor.
T - The type of object that the handler returnssql - The SQL statement to execute.rsh - The handler used to create the result object from
the ResultSet.
SQLException - if a database access error occurs
protected void rethrow(SQLException cause,
String sql,
Object... params)
throws SQLException
cause - The original exception that will be chained to the new
exception when it's rethrown.sql - The query that was executing when the exception happened.params - The query replacement parameters; null is a
valid value to pass in.
SQLException - if a database access error occurs
public int update(Connection conn,
String sql)
throws SQLException
conn - The connection to use to run the query.sql - The SQL to execute.
SQLException - if a database access error occurs
public int update(Connection conn,
String sql,
Object param)
throws SQLException
conn - The connection to use to run the query.sql - The SQL to execute.param - The replacement parameter.
SQLException - if a database access error occurs
public int update(Connection conn,
String sql,
Object... params)
throws SQLException
conn - The connection to use to run the query.sql - The SQL to execute.params - The query replacement parameters.
SQLException - if a database access error occurs
public int update(String sql)
throws SQLException
Connection is retrieved
from the DataSource set in the constructor. This
Connection must be in auto-commit mode or the update will
not be saved.
sql - The SQL statement to execute.
SQLException - if a database access error occurs
public int update(String sql,
Object param)
throws SQLException
Connection is
retrieved from the DataSource set in the constructor.
This Connection must be in auto-commit mode or the
update will not be saved.
sql - The SQL statement to execute.param - The replacement parameter.
SQLException - if a database access error occurs
public int update(String sql,
Object... params)
throws SQLException
Connection is retrieved from the DataSource
set in the constructor. This Connection must be in
auto-commit mode or the update will not be saved.
sql - The SQL statement to execute.params - Initializes the PreparedStatement's IN (i.e. '?')
parameters.
SQLException - if a database access error occursprotected ResultSet wrap(ResultSet rs)
ResultSet in a decorator before processing it.
This implementation returns the ResultSet it is given
without any decoration.
Often, the implementation of this method can be done in an anonymous inner class like this:
QueryRunner run = new QueryRunner() {
protected ResultSet wrap(ResultSet rs) {
return StringTrimmedResultSet.wrap(rs);
}
};
rs - The ResultSet to decorate; never
null.
ResultSet wrapped in some decorator.
protected void close(Connection conn)
throws SQLException
Connection. This implementation avoids closing if
null and does not suppress any exceptions. Subclasses
can override to provide special handling like logging.
conn - Connection to close
SQLException - if a database access error occurs
protected void close(Statement stmt)
throws SQLException
Statement. This implementation avoids closing if
null and does not suppress any exceptions. Subclasses
can override to provide special handling like logging.
stmt - Statement to close
SQLException - if a database access error occurs
protected void close(ResultSet rs)
throws SQLException
ResultSet. This implementation avoids closing if
null and does not suppress any exceptions. Subclasses
can override to provide special handling like logging.
rs - ResultSet to close
SQLException - if a database access error occurs
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||