|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.jdbc.support.JdbcAccessor org.springframework.jdbc.core.JdbcTemplate
This is the central class in the JDBC core package.
It simplifies the use of JDBC and helps to avoid common errors.
It executes core JDBC workflow, leaving application code to provide SQL
and extract results. This class executes SQL queries or updates, initiating
iteration over ResultSets and catching JDBC exceptions and translating
them to the generic, more informative exception hierarchy defined in the
org.springframework.dao
package.
Code using this class need only implement callback interfaces, giving them a clearly defined contract. The PreparedStatementCreator callback interface creates a prepared statement given a Connection provided by this class, providing SQL and any necessary parameters. The RowCallbackHandler interface extracts values from each row of a ResultSet.
Can be used within a service implementation via direct instantiation with a DataSource reference, or get prepared in an application context and given to services as bean reference. Note: The DataSource should always be configured as a bean in the application context, in the first case given to the service directly, in the second case to the prepared template.
The motivation and design of this class is discussed in detail in Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).
Because this class is parameterizable by the callback interfaces and the SQLExceptionTranslator interface, it isn't necessary to subclass it. All SQL issued by this class is logged.
ResultSetExtractor
,
RowCallbackHandler
,
RowMapper
,
org.springframework.dao
,
org.springframework.jdbc.datasource
,
org.springframework.jdbc.object
Field Summary |
Fields inherited from class org.springframework.jdbc.support.JdbcAccessor |
logger |
Constructor Summary | |
JdbcTemplate()
Construct a new JdbcTemplate for bean usage. |
|
JdbcTemplate(DataSource dataSource)
Construct a new JdbcTemplate, given a DataSource to obtain connections from. |
Method Summary | |
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
int[] |
batchUpdate(String[] sql)
Issue multiple SQL updates on a single Statement, using JDBC 2.0 batching. |
int[] |
batchUpdate(String sql,
BatchPreparedStatementSetter pss)
Issue multiple updates on a single PreparedStatement, using JDBC 2.0 batch updates and a BatchPreparedStatementSetter to set values. |
Map |
call(CallableStatementCreator csc,
List declaredParameters)
Execute a SQL call using a CallableStatementCreator to provide SQL and any required parameters. |
Object |
execute(CallableStatementCreator csc,
CallableStatementCallback action)
Execute the action specified by the given action object within a JDBC CallableStatement. |
Object |
execute(ConnectionCallback action)
Execute the action specified by the given action object within a JDBC Connection. |
Object |
execute(PreparedStatementCreator psc,
PreparedStatementCallback action)
Execute the action specified by the given action object within a JDBC PreparedStatement. |
Object |
execute(StatementCallback action)
Execute the action specified by the given action object within a JDBC Statement. |
void |
execute(String sql)
Issue a single SQL execute, typically a DDL statement. |
Object |
execute(String callString,
CallableStatementCallback action)
Execute the action specified by the given action object within a JDBC CallableStatement. |
Object |
execute(String sql,
PreparedStatementCallback action)
Execute the action specified by the given action object within a JDBC PreparedStatement. |
protected Map |
extractOutputParameters(CallableStatement cs,
List parameters)
Extract output parameters from the completed stored procedure. |
protected Map |
extractReturnedResultSets(CallableStatement cs,
List parameters,
int updateCount)
Extract returned ResultSets from the completed stored procedure. |
int |
getFetchSize()
Return the fetch size specified for this JdbcTemplate. |
boolean |
getIgnoreWarnings()
Deprecated. in favor of isIgnoreWarnings |
int |
getMaxRows()
Return the maximum number of rows specified for this JdbcTemplate. |
NativeJdbcExtractor |
getNativeJdbcExtractor()
Return the current NativeJdbcExtractor implementation. |
boolean |
isIgnoreWarnings()
Return whether or not we ignore SQLWarnings. |
protected Map |
processResultSet(ResultSet rs,
ResultSetSupportingSqlParameter param)
Process the given ResultSet from a stored procedure. |
protected Object |
query(PreparedStatementCreator psc,
PreparedStatementSetter pss,
ResultSetExtractor rse)
Query using a prepared statement, allowing for a PreparedStatementCreator and a PreparedStatementSetter. |
Object |
query(PreparedStatementCreator psc,
ResultSetExtractor rse)
Query using a prepared statement. |
List |
query(PreparedStatementCreator psc,
RowCallbackHandler rch)
Query using a prepared statement, reading the ResultSet on a per-row basis with a RowCallbackHandler (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(PreparedStatementCreator psc,
RowMapper rowMapper)
Query using a prepared statement, mapping each row to a Java object via a RowMapper. |
Object |
query(String sql,
Object[] args,
int[] argTypes,
ResultSetExtractor rse)
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 (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(String sql,
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 (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(String sql,
Object[] args,
int[] argTypes,
RowMapper 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. |
Object |
query(String sql,
Object[] args,
ResultSetExtractor rse)
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 (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(String sql,
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 (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(String sql,
Object[] args,
RowMapper 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. |
Object |
query(String sql,
PreparedStatementSetter pss,
ResultSetExtractor rse)
Query using a prepared statement, reading the ResultSet with a ResultSetExtractor. |
List |
query(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 (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(String sql,
PreparedStatementSetter pss,
RowMapper 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 objec via a RowMapper. |
Object |
query(String sql,
ResultSetExtractor rse)
Execute a query given static SQL, reading the ResultSet with a ResultSetExtractor. |
List |
query(String sql,
RowCallbackHandler rch)
Execute a query given static SQL, reading the ResultSet on a per-row basis with a RowCallbackHandler (potentially implementing the ResultReader sub-interface that provides a result List). |
List |
query(String sql,
RowMapper rowMapper)
Execute a query given static SQL, mapping each row to a Java object via a RowMapper. |
int |
queryForInt(String sql)
Execute a query that results in an int value, given static SQL. |
int |
queryForInt(String sql,
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(String sql,
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. |
List |
queryForList(String sql)
Execute a query for a result list, given static SQL. |
List |
queryForList(String sql,
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. |
List |
queryForList(String sql,
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. |
long |
queryForLong(String sql)
Execute a query that results in a long value, given static SQL. |
long |
queryForLong(String sql,
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(String sql,
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. |
Object |
queryForObject(String sql,
Class requiredType)
Execute a query for a result object, given static SQL. |
Object |
queryForObject(String sql,
Object[] args,
Class 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. |
Object |
queryForObject(String sql,
Object[] args,
int[] argTypes,
Class 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. |
void |
setFetchSize(int fetchSize)
Set the fetch size for this JdbcTemplate. |
void |
setIgnoreWarnings(boolean ignoreWarnings)
Set whether or not we want to ignore SQLWarnings. |
void |
setMaxRows(int maxRows)
Set the maximum number of rows for this JdbcTemplate. |
void |
setNativeJdbcExtractor(NativeJdbcExtractor extractor)
Set a NativeJdbcExtractor to extract native JDBC objects from wrapped handles. |
int |
update(PreparedStatementCreator psc)
Issue an update using a PreparedStatementCreator to provide SQL and any required parameters. |
int |
update(PreparedStatementCreator psc,
KeyHolder generatedKeyHolder)
Issue an update using a PreparedStatementCreator to provide SQL and any required parameters. |
protected int |
update(PreparedStatementCreator psc,
PreparedStatementSetter pss)
|
int |
update(String sql)
Issue a single SQL update. |
int |
update(String sql,
Object[] args)
Issue an update via a prepared statement, binding the given arguments. |
int |
update(String sql,
Object[] args,
int[] argTypes)
Issue an update via a prepared statement, binding the given arguments. |
int |
update(String sql,
PreparedStatementSetter pss)
Issue an update using a PreparedStatementSetter to set bind parameters, with given SQL. |
Methods inherited from class org.springframework.jdbc.support.JdbcAccessor |
getDataSource, getExceptionTranslator, isLazyInit, setDataSource, setExceptionTranslator, setLazyInit |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public JdbcTemplate()
JdbcAccessor.setDataSource(javax.sql.DataSource)
public JdbcTemplate(DataSource dataSource)
dataSource
- JDBC DataSource to obtain connections fromMethod Detail |
public void setNativeJdbcExtractor(NativeJdbcExtractor extractor)
public NativeJdbcExtractor getNativeJdbcExtractor()
public void setIgnoreWarnings(boolean ignoreWarnings)
public boolean isIgnoreWarnings()
public boolean getIgnoreWarnings()
isIgnoreWarnings
isIgnoreWarnings()
public void setFetchSize(int fetchSize)
Default is 0, indicating to use the driver's default.
public int getFetchSize()
public void setMaxRows(int maxRows)
Default is 0, indicating to use the driver's default.
public int getMaxRows()
public void afterPropertiesSet()
InitializingBean
This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet
in interface InitializingBean
afterPropertiesSet
in class JdbcAccessor
public Object execute(ConnectionCallback action) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
action
- callback object that specifies the action
DataAccessException
- if there is any problempublic Object execute(StatementCallback action) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
action
- callback object that specifies the action
DataAccessException
- if there is any problempublic void execute(String sql) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
sql
- static SQL to execute
DataAccessException
- if there is any problempublic Object query(String sql, ResultSetExtractor rse) throws DataAccessException
JdbcOperations
Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with a null PreparedStatementSetter as a parameter.
query
in interface JdbcOperations
sql
- SQL query to executerse
- object that will extract all rows of results
DataAccessException
- if there is any problem executing the queryJdbcOperations.query(String, PreparedStatementSetter, ResultSetExtractor)
public List query(String sql, RowCallbackHandler rch) throws DataAccessException
JdbcOperations
Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with null as PreparedStatementSetter argument.
query
in interface JdbcOperations
sql
- SQL query to executerch
- object that will extract results (potentially a ResultReader),
one row at a time
DataAccessException
- if there is any problem executing the queryJdbcOperations.query(String, PreparedStatementSetter, RowCallbackHandler)
public List query(String sql, RowMapper rowMapper) throws DataAccessException
JdbcOperations
Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with null as PreparedStatementSetter argument.
query
in interface JdbcOperations
sql
- SQL query to executerowMapper
- object that will map one object per row
DataAccessException
- if there is any problem executing the queryJdbcOperations.query(String, PreparedStatementSetter, RowCallbackHandler)
public List queryForList(String sql) throws DataAccessException
JdbcOperations
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.
This method is useful for running static SQL with a known outcome. The results will be mapped to an ArrayList (one entry for each row) of HashMaps (one entry for each column using the column name as the key).
queryForList
in interface JdbcOperations
sql
- SQL query to execute
DataAccessException
- if there is any problem executing the queryJdbcOperations.queryForList(String, Object[])
public Object queryForObject(String sql, Class requiredType) throws DataAccessException
JdbcOperations
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.
queryForObject
in interface JdbcOperations
sql
- SQL query to executerequiredType
- the type that the result object is expected to match
DataAccessException
- if there is any problem executing the queryJdbcOperations.queryForObject(String, Object[], Class)
public long queryForLong(String sql) throws DataAccessException
JdbcOperations
Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForLong 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 that results in a long value.
queryForLong
in interface JdbcOperations
sql
- SQL query to execute
DataAccessException
- if there is any problem executing the queryJdbcOperations.queryForLong(String, Object[])
public int queryForInt(String sql) throws DataAccessException
JdbcOperations
Uses a JDBC Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForInt 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 that results in an int value.
queryForInt
in interface JdbcOperations
sql
- SQL query to execute
DataAccessException
- if there is any problem executing the queryJdbcOperations.queryForInt(String, Object[])
public int update(String sql) throws DataAccessException
JdbcOperations
update
in interface JdbcOperations
sql
- static SQL to execute
DataAccessException
- if there is any problem.public int[] batchUpdate(String[] sql) throws DataAccessException
JdbcOperations
Will fall back to separate updates on a single Statement if the JDBC driver does not support batch updates.
batchUpdate
in interface JdbcOperations
sql
- defining an array of SQL statements that will be executed.
DataAccessException
- if there is any problem executing the batchpublic Object execute(PreparedStatementCreator psc, PreparedStatementCallback action) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
psc
- object that can create a PreparedStatement given a Connectionaction
- callback object that specifies the action
DataAccessException
- if there is any problempublic Object execute(String sql, PreparedStatementCallback action) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
sql
- SQL to executeaction
- callback object that specifies the action
DataAccessException
- if there is any problemprotected Object query(PreparedStatementCreator psc, PreparedStatementSetter pss, ResultSetExtractor rse) throws DataAccessException
psc
- Callback handler that can create a PreparedStatement given a
Connectionpss
- 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.rse
- object that will extract results.
DataAccessException
- if there is any problempublic Object query(PreparedStatementCreator psc, ResultSetExtractor rse) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
psc
- object that can create a PreparedStatement given a Connectionrse
- object that will extract results
DataAccessException
- if there is any problempublic Object query(String sql, PreparedStatementSetter pss, ResultSetExtractor rse) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executepss
- 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.rse
- object that will extract results
DataAccessException
- if there is any problempublic Object query(String sql, Object[] args, int[] argTypes, ResultSetExtractor rse) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the queryargTypes
- SQL types of the arguments
(constants from java.sql.Types
)rse
- object that will extract results
DataAccessException
- if the query failsTypes
public Object query(String sql, Object[] args, ResultSetExtractor rse) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)rse
- object that will extract results
DataAccessException
- if the query failspublic List query(PreparedStatementCreator psc, RowCallbackHandler rch) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
psc
- object that can create a PreparedStatement given a Connectionrch
- object that will extract results (potentially a ResultReader),
one row at a time
DataAccessException
- if there is any problempublic List query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executepss
- 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.rch
- object that will extract results (potentially a ResultReader),
one row at a time
DataAccessException
- if the query failspublic List query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the queryargTypes
- SQL types of the arguments
(constants from java.sql.Types
)rch
- object that will extract results (potentially a ResultReader),
one row at a time
DataAccessException
- if the query failsTypes
public List query(String sql, Object[] args, RowCallbackHandler rch) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)rch
- object that will extract results (potentially a ResultReader),
one row at a time
DataAccessException
- if the query failspublic List query(PreparedStatementCreator psc, RowMapper rowMapper) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
psc
- object that can create a PreparedStatement given a ConnectionrowMapper
- object that will map one object per row
DataAccessException
- if there is any problempublic List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executepss
- 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.rowMapper
- object that will map one object per row
DataAccessException
- if the query failspublic List query(String sql, Object[] args, int[] argTypes, RowMapper rowMapper) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the queryargTypes
- SQL types of the arguments
(constants from java.sql.Types
)rowMapper
- object that will map one object per row
DataAccessException
- if the query failsTypes
public List query(String sql, Object[] args, RowMapper rowMapper) throws DataAccessException
JdbcOperations
query
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)rowMapper
- object that will map one object per row
DataAccessException
- if the query failspublic List queryForList(String sql, Object[] args, int[] argTypes) throws DataAccessException
JdbcOperations
This method is useful for running static SQL with a known outcome. The results will be mapped to an ArrayList (one entry for each row) of HashMaps (one entry for each column using the column name as the key).
queryForList
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)argTypes
- SQL types of the arguments
(constants from java.sql.Types
)
DataAccessException
- if the query failsJdbcOperations.queryForList(String)
,
Types
public List queryForList(String sql, Object[] args) throws DataAccessException
JdbcOperations
This method is useful for running static SQL with a known outcome. The results will be mapped to an ArrayList (one entry for each row) of HashMaps (one entry for each column using the column name as the key).
queryForList
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)
DataAccessException
- if the query failsJdbcOperations.queryForList(String)
public Object queryForObject(String sql, Object[] args, int[] argTypes, Class requiredType) throws DataAccessException
JdbcOperations
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.
queryForObject
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)argTypes
- SQL types of the arguments
(constants from java.sql.Types
)requiredType
- the type that the result object is expected to match
DataAccessException
- if the query failsJdbcOperations.queryForObject(String, Class)
,
Types
public Object queryForObject(String sql, Object[] args, Class requiredType) throws DataAccessException
JdbcOperations
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.
queryForObject
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)requiredType
- the type that the result object is expected to match
DataAccessException
- if the query failsJdbcOperations.queryForObject(String, Class)
public long queryForLong(String sql, Object[] args, int[] argTypes) throws DataAccessException
JdbcOperations
This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in a long value.
queryForLong
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)argTypes
- SQL types of the arguments
(constants from java.sql.Types
)
DataAccessException
- if the query failsJdbcOperations.queryForLong(String)
,
Types
public long queryForLong(String sql, Object[] args) throws DataAccessException
JdbcOperations
This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in a long value.
queryForLong
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)
DataAccessException
- if the query failsJdbcOperations.queryForLong(String)
public int queryForInt(String sql, Object[] args, int[] argTypes) throws DataAccessException
JdbcOperations
This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in an int value.
queryForInt
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)argTypes
- SQL types of the arguments
(constants from java.sql.Types
)
DataAccessException
- if the query failsJdbcOperations.queryForInt(String)
,
Types
public int queryForInt(String sql, Object[] args) throws DataAccessException
JdbcOperations
This method is useful for running static SQL with a known outcome. The query is expected to be a single row/single column query that results in an int value.
queryForInt
in interface JdbcOperations
sql
- SQL to executeargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)
DataAccessException
- if the query failsJdbcOperations.queryForInt(String)
protected int update(PreparedStatementCreator psc, PreparedStatementSetter pss) throws DataAccessException
DataAccessException
public int update(PreparedStatementCreator psc) throws DataAccessException
JdbcOperations
update
in interface JdbcOperations
psc
- object that provides SQL and any necessary parameters
DataAccessException
- if there is any problem issuing the updatepublic int update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder) throws DataAccessException
JdbcOperations
update
in interface JdbcOperations
psc
- object that provides SQL and any necessary parametersgeneratedKeyHolder
- KeyHolder that will hold the generated keys
DataAccessException
- if there is any problem issuing the updatepublic int update(String sql, PreparedStatementSetter pss) throws DataAccessException
JdbcOperations
update
in interface JdbcOperations
sql
- SQL, containing bind parameterspss
- helper that sets bind parameters. If this is null
we run an update with static SQL.
DataAccessException
- if there is any problem issuing the updatepublic int update(String sql, Object[] args, int[] argTypes) throws DataAccessException
JdbcOperations
update
in interface JdbcOperations
sql
- SQL, containing bind parametersargs
- arguments to bind to the queryargTypes
- SQL types of the arguments
(constants from java.sql.Types
)
DataAccessException
- if there is any problem issuing the updateTypes
public int update(String sql, Object[] args) throws DataAccessException
JdbcOperations
update
in interface JdbcOperations
sql
- SQL, containing bind parametersargs
- arguments to bind to the query
(leaving it to the PreparedStatement to guess the respective SQL type)
DataAccessException
- if there is any problem issuing the updatepublic int[] batchUpdate(String sql, BatchPreparedStatementSetter pss) throws DataAccessException
JdbcOperations
Will fall back to separate updates on a single PreparedStatement if the JDBC driver does not support batch updates.
batchUpdate
in interface JdbcOperations
sql
- defining PreparedStatement that will be reused.
All statements in the batch will use the same SQL.pss
- object to set parameters on the PreparedStatement
created by this method
DataAccessException
- if there is any problem issuing the updatepublic Object execute(CallableStatementCreator csc, CallableStatementCallback action) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
csc
- object that can create a CallableStatement given a Connectionaction
- callback object that specifies the action
DataAccessException
- if there is any problempublic Object execute(String callString, CallableStatementCallback action) throws DataAccessException
JdbcOperations
execute
in interface JdbcOperations
callString
- the SQL call string to executeaction
- callback object that specifies the action
DataAccessException
- if there is any problempublic Map call(CallableStatementCreator csc, List declaredParameters) throws DataAccessException
JdbcOperations
call
in interface JdbcOperations
csc
- object that provides SQL and any necessary parametersdeclaredParameters
- list of declared SqlParameter objects
DataAccessException
- if there is any problem issuing the updateprotected Map extractReturnedResultSets(CallableStatement cs, List parameters, int updateCount) throws SQLException
cs
- JDBC wrapper for the stored procedureparameters
- Parameter list for the stored procedure
SQLException
protected Map extractOutputParameters(CallableStatement cs, List parameters) throws SQLException
cs
- JDBC wrapper for the stored procedureparameters
- parameter list for the stored procedure
SQLException
protected Map processResultSet(ResultSet rs, ResultSetSupportingSqlParameter param) throws SQLException
rs
- the ResultSet to processparam
- the corresponding stored procedure parameter
SQLException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |