|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.dbutils.AbstractQueryRunner
public abstract class AbstractQueryRunner
The base class for QueryRunner & AsyncQueryRunner. This class is thread safe.
Field Summary | |
---|---|
protected DataSource |
ds
The DataSource to retrieve connections from. |
Constructor Summary | |
---|---|
AbstractQueryRunner()
Default constructor, sets pmdKnownBroken to false and ds to null. |
|
AbstractQueryRunner(boolean pmdKnownBroken)
Constructor to allow workaround for Oracle drivers |
|
AbstractQueryRunner(DataSource ds)
Constructor to provide a DataSource . |
|
AbstractQueryRunner(DataSource ds,
boolean pmdKnownBroken)
Constructor to allow workaround for Oracle drivers. |
Method Summary | |
---|---|
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. |
boolean |
isPmdKnownBroken()
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. |
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. |
protected void |
rethrow(SQLException cause,
String sql,
Object... params)
Throws a new exception with a more informative error message. |
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 AbstractQueryRunner()
public AbstractQueryRunner(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 AbstractQueryRunner(DataSource ds)
DataSource
.
Methods that do not take a Connection
parameter will
retrieve connections from this DataSource
.
ds
- The DataSource
to retrieve connections from.public AbstractQueryRunner(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 DataSource getDataSource()
DataSource
this runner is using.
QueryRunner
methods always call this method to get the
DataSource
so subclasses can provide specialized
behavior.
public boolean isPmdKnownBroken()
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.
ParameterMetaData.getParameterType(int)
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
PreparedStatement
sql
- The SQL statement to prepare.
PreparedStatement
.
SQLException
- if a database access error occursprotected 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 occurspublic 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 occurspublic 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 occurspublic 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 occursprotected 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 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 occursprotected 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 occursprotected 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 |