org.springframework.jdbc.core
Interface JdbcOperations

Interface specifying a basic set of JDBC operations.
Implemented by JdbcTemplate. Not often used directly, but a useful
option to enhance testability, as it can easily be mocked or stubbed.

Alternatively, the standard JDBC infrastructure can be mocked.
However, mocking this interface constitutes significantly less work.
As an alternative to a mock objects approach to testing data access code,
consider the powerful integration testing support provided in the
org.springframework.test package, shipped in
spring-mock.jar.

batchUpdate(java.lang.String[] sql)
Issue multiple SQL updates on a single JDBC Statement using batching.

int[]

batchUpdate(java.lang.String sql,
BatchPreparedStatementSetter pss)
Issue multiple update statements on a single PreparedStatement,
using batch updates and a BatchPreparedStatementSetter to set values.

query(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes,
ResultSetExtractor<T> rse)
Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, reading the ResultSet with a
ResultSetExtractor.

void

query(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes,
RowCallbackHandler rch)
Query given SQL to create a prepared statement from SQL and a list of
arguments to bind to the query, reading the ResultSet on a per-row basis
with a RowCallbackHandler.

<T> java.util.List<T>

query(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes,
RowMapper<T> rowMapper)
Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, mapping each row to a Java object
via a RowMapper.

<T> T

query(java.lang.String sql,
java.lang.Object[] args,
ResultSetExtractor<T> rse)
Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, reading the ResultSet with a
ResultSetExtractor.

void

query(java.lang.String sql,
java.lang.Object[] args,
RowCallbackHandler rch)
Query given SQL to create a prepared statement from SQL and a list of
arguments to bind to the query, reading the ResultSet on a per-row basis
with a RowCallbackHandler.

<T> java.util.List<T>

query(java.lang.String sql,
java.lang.Object[] args,
RowMapper<T> rowMapper)
Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, mapping each row to a Java object
via a RowMapper.

query(java.lang.String sql,
PreparedStatementSetter pss,
RowCallbackHandler rch)
Query given SQL to create a prepared statement from SQL and a
PreparedStatementSetter implementation that knows how to bind values
to the query, reading the ResultSet on a per-row basis with a
RowCallbackHandler.

<T> java.util.List<T>

query(java.lang.String sql,
PreparedStatementSetter pss,
RowMapper<T> rowMapper)
Query given SQL to create a prepared statement from SQL and a
PreparedStatementSetter implementation that knows how to bind values
to the query, mapping each row to a Java object via a RowMapper.

<T> T

query(java.lang.String sql,
ResultSetExtractor<T> rse)
Execute a query given static SQL, reading the ResultSet with a
ResultSetExtractor.

void

query(java.lang.String sql,
RowCallbackHandler rch)
Execute a query given static SQL, reading the ResultSet on a per-row
basis with a RowCallbackHandler.

<T> java.util.List<T>

query(java.lang.String sql,
RowMapper<T> rowMapper)
Execute a query given static SQL, mapping each row to a Java object
via a RowMapper.

int

queryForInt(java.lang.String sql)
Execute a query that results in an int value, given static SQL.

int

queryForInt(java.lang.String sql,
java.lang.Object... args)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, resulting in an int value.

int

queryForInt(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, resulting in an int value.

java.util.List<java.util.Map<java.lang.String,java.lang.Object>>

queryForList(java.lang.String sql)
Execute a query for a result list, given static SQL.

<T> java.util.List<T>

queryForList(java.lang.String sql,
java.lang.Class<T> elementType)
Execute a query for a result list, given static SQL.

java.util.List<java.util.Map<java.lang.String,java.lang.Object>>

queryForList(java.lang.String sql,
java.lang.Object... args)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

<T> java.util.List<T>

queryForList(java.lang.String sql,
java.lang.Object[] args,
java.lang.Class<T> elementType)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

java.util.List<java.util.Map<java.lang.String,java.lang.Object>>

queryForList(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

<T> java.util.List<T>

queryForList(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes,
java.lang.Class<T> elementType)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

long

queryForLong(java.lang.String sql)
Execute a query that results in a long value, given static SQL.

long

queryForLong(java.lang.String sql,
java.lang.Object... args)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, resulting in a long value.

long

queryForLong(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, resulting in a long value.

java.util.Map<java.lang.String,java.lang.Object>

queryForMap(java.lang.String sql)
Execute a query for a result Map, given static SQL.

java.util.Map<java.lang.String,java.lang.Object>

queryForMap(java.lang.String sql,
java.lang.Object... args)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result Map.

java.util.Map<java.lang.String,java.lang.Object>

queryForMap(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result Map.

<T> T

queryForObject(java.lang.String sql,
java.lang.Class<T> requiredType)
Execute a query for a result object, given static SQL.

<T> T

queryForObject(java.lang.String sql,
java.lang.Object[] args,
java.lang.Class<T> requiredType)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result object.

<T> T

queryForObject(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes,
java.lang.Class<T> requiredType)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result object.

<T> T

queryForObject(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes,
RowMapper<T> rowMapper)
Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, mapping a single result row to a
Java object via a RowMapper.

<T> T

queryForObject(java.lang.String sql,
java.lang.Object[] args,
RowMapper<T> rowMapper)
Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, mapping a single result row to a
Java object via a RowMapper.

<T> T

queryForObject(java.lang.String sql,
RowMapper<T> rowMapper)
Execute a query given static SQL, mapping a single result row to a Java
object via a RowMapper.

queryForRowSet(java.lang.String sql,
java.lang.Object[] args,
int[] argTypes)
Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a SqlRowSet.

int

update(PreparedStatementCreator psc)
Issue a single SQL update operation (such as an insert, update or delete statement)
using a PreparedStatementCreator to provide SQL and any required parameters.

execute

Execute a JDBC data access operation, implemented as callback action
working on a JDBC Statement. This allows for implementing arbitrary data
access operations on a single Statement, within Spring's managed JDBC
environment: that is, participating in Spring-managed transactions and
converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

The callback action can return a result object, for example a
domain object or a collection of domain objects.

queryForObject

Uses a JDBC Statement, not a PreparedStatement. If you want to
execute a static query with a PreparedStatement, use the overloaded
queryForObject method with null as argument array.

This method is useful for running static SQL with a known outcome.
The query is expected to be a single row/single column query; the returned
result will be directly mapped to the corresponding object type.

queryForList

Uses a JDBC Statement, not a PreparedStatement. If you want to
execute a static query with a PreparedStatement, use the overloaded
queryForList method with null as argument array.

The results will be mapped to a List (one entry for each row) of
Maps (one entry for each column using the column name as the key).
Each element in the list will be of the form returned by this interface's
queryForMap() methods.

queryForRowSet

Uses a JDBC Statement, not a PreparedStatement. If you want to
execute a static query with a PreparedStatement, use the overloaded
queryForRowSet method with null as argument array.

The results will be mapped to an SqlRowSet which holds the data in a
disconnected fashion. This wrapper will translate any SQLExceptions thrown.

Note that that, for the default implementation, JDBC RowSet support needs to
be available at runtime: by default, Sun's com.sun.rowset.CachedRowSetImpl
class is used, which is part of JDK 1.5+ and also available separately as part of
Sun's JDBC RowSet Implementations download (rowset.jar).

Parameters:

sql - SQL query to execute

Returns:

a SqlRowSet representation (possibly a wrapper around a
javax.sql.rowset.CachedRowSet)

execute

Execute a JDBC data access operation, implemented as callback action
working on a JDBC PreparedStatement. This allows for implementing arbitrary
data access operations on a single Statement, within Spring's managed
JDBC environment: that is, participating in Spring-managed transactions
and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

The callback action can return a result object, for example a
domain object or a collection of domain objects.

execute

Execute a JDBC data access operation, implemented as callback action
working on a JDBC PreparedStatement. This allows for implementing arbitrary
data access operations on a single Statement, within Spring's managed
JDBC environment: that is, participating in Spring-managed transactions
and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

The callback action can return a result object, for example a
domain object or a collection of domain objects.

query

Query using a prepared statement, reading the ResultSet with a
ResultSetExtractor.

Parameters:

sql - SQL query to execute

pss - object that knows how to set values on the prepared statement.
If this is null, the SQL will be assumed to contain no bind parameters.
Even if there are no bind parameters, this object may be used to
set fetch size and other performance options.

query

Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, reading the ResultSet with a
ResultSetExtractor.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

query

Query given SQL to create a prepared statement from SQL and a
PreparedStatementSetter implementation that knows how to bind values
to the query, reading the ResultSet on a per-row basis with a
RowCallbackHandler.

Parameters:

sql - SQL query to execute

pss - object that knows how to set values on the prepared statement.
If this is null, the SQL will be assumed to contain no bind parameters.
Even if there are no bind parameters, this object may be used to
set fetch size and other performance options.

query

Query given SQL to create a prepared statement from SQL and a list of
arguments to bind to the query, reading the ResultSet on a per-row basis
with a RowCallbackHandler.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

query

Query given SQL to create a prepared statement from SQL and a
PreparedStatementSetter implementation that knows how to bind values
to the query, mapping each row to a Java object via a RowMapper.

Parameters:

sql - SQL query to execute

pss - object that knows how to set values on the prepared statement.
If this is null, the SQL will be assumed to contain no bind parameters.
Even if there are no bind parameters, this object may be used to
set fetch size and other performance options.

query

Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, mapping each row to a Java object
via a RowMapper.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

queryForObject

Query given SQL to create a prepared statement from SQL and a list
of arguments to bind to the query, mapping a single result row to a
Java object via a RowMapper.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

queryForObject

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result object.

The query is expected to be a single row/single column query; the returned
result will be directly mapped to the corresponding object type.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

queryForMap

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result Map.
The queryForMap() methods defined by this interface are appropriate
when you don't have a domain model. Otherwise, consider using
one of the queryForObject() methods.

The query is expected to be a single row query; the result row will be
mapped to a Map (one entry for each column, using the column name as the key).

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

Returns:

the result Map (one entry for each column, using the
column name as the key)

queryForLong

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, resulting in a long value.

The query is expected to be a single row/single column query that
results in a long value.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

queryForInt

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, resulting in an int value.

The query is expected to be a single row/single column query that
results in an int value.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

queryForList

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

The results will be mapped to a List (one entry for each row) of
result objects, each of them matching the specified element type.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

elementType - the required type of element in the result list
(for example, Integer.class)

queryForList

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

The results will be mapped to a List (one entry for each row) of
Maps (one entry for each column, using the column name as the key).
Thus Each element in the list will be of the form returned by this interface's
queryForMap() methods.

queryForList

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a result list.

The results will be mapped to a List (one entry for each row) of
Maps (one entry for each column, using the column name as the key).
Each element in the list will be of the form returned by this interface's
queryForMap() methods.

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

queryForRowSet

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a SqlRowSet.

The results will be mapped to an SqlRowSet which holds the data in a
disconnected fashion. This wrapper will translate any SQLExceptions thrown.

Note that that, for the default implementation, JDBC RowSet support needs to
be available at runtime: by default, Sun's com.sun.rowset.CachedRowSetImpl
class is used, which is part of JDK 1.5+ and also available separately as part of
Sun's JDBC RowSet Implementations download (rowset.jar).

Parameters:

sql - SQL query to execute

args - arguments to bind to the query

argTypes - SQL types of the arguments
(constants from java.sql.Types)

Returns:

a SqlRowSet representation (possibly a wrapper around a
javax.sql.rowset.CachedRowSet)

queryForRowSet

Query given SQL to create a prepared statement from SQL and a
list of arguments to bind to the query, expecting a SqlRowSet.

The results will be mapped to an SqlRowSet which holds the data in a
disconnected fashion. This wrapper will translate any SQLExceptions thrown.

Note that that, for the default implementation, JDBC RowSet support needs to
be available at runtime: by default, Sun's com.sun.rowset.CachedRowSetImpl
class is used, which is part of JDK 1.5+ and also available separately as part of
Sun's JDBC RowSet Implementations download (rowset.jar).

Parameters:

sql - SQL query to execute

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

Returns:

a SqlRowSet representation (possibly a wrapper around a
javax.sql.rowset.CachedRowSet)

update

Issue an update statement using a PreparedStatementCreator to provide SQL and
any required parameters. Generated keys will be put into the given KeyHolder.

Note that the given PreparedStatementCreator has to create a statement
with activated extraction of generated keys (a JDBC 3.0 feature). This can
either be done directly or through using a PreparedStatementCreatorFactory.

update

Issue an update statement using a PreparedStatementSetter to set bind parameters,
with given SQL. Simpler than using a PreparedStatementCreator as this method
will create the PreparedStatement: The PreparedStatementSetter just needs to
set parameters.

Parameters:

sql - SQL containing bind parameters

pss - helper that sets bind parameters. If this is null
we run an update with static SQL.

update

Issue a single SQL update operation (such as an insert, update or delete statement)
via a prepared statement, binding the given arguments.

Parameters:

sql - SQL containing bind parameters

args - arguments to bind to the query
(leaving it to the PreparedStatement to guess the corresponding SQL type);
may also contain SqlParameterValue objects which indicate not
only the argument value but also the SQL type and optionally the scale

execute

Execute a JDBC data access operation, implemented as callback action
working on a JDBC CallableStatement. This allows for implementing arbitrary
data access operations on a single Statement, within Spring's managed
JDBC environment: that is, participating in Spring-managed transactions
and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

The callback action can return a result object, for example a
domain object or a collection of domain objects.

execute

Execute a JDBC data access operation, implemented as callback action
working on a JDBC CallableStatement. This allows for implementing arbitrary
data access operations on a single Statement, within Spring's managed
JDBC environment: that is, participating in Spring-managed transactions
and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

The callback action can return a result object, for example a
domain object or a collection of domain objects.