(and as thrown by the
org.springframework.jdbc.core
package, which the classes
in this package use under the hood to perform raw JDBC operations).
Subclasses should set SQL and add parameters before invoking the
compile()
method. The order in which parameters are added is
significant. The appropriate execute
or update
method can then be invoked.
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
compile()
,
org.springframework.dao
,
org.springframework.jdbc.core
Method Summary |
void |
afterPropertiesSet()
Ensures compilation if used in a bean factory. |
protected boolean |
allowsUnusedParameters()
Return whether this operation accepts additional parameters that are
given but not actually used. |
protected void |
checkCompiled()
Check whether this operation has been compiled already;
lazily compile it if not already compiled. |
void |
compile()
Compile this query. |
protected abstract void |
compileInternal()
Subclasses must implement to perform their own compilation. |
void |
declareParameter(SqlParameter param)
Declare a parameter. |
protected List |
getDeclaredParameters()
Return a list of the declared SqlParameter objects. |
String[] |
getGeneratedKeysColumnNames()
Return the column names of the auto generated keys. |
JdbcTemplate |
getJdbcTemplate()
Return the JdbcTemplate object used by this object. |
int |
getResultSetType()
Return whether statements will return a specific type of ResultSet. |
String |
getSql()
Subclasses can override this to supply dynamic SQL if they wish,
but SQL is normally set by calling the setSql() method
or in a subclass constructor. |
boolean |
isCompiled()
Is this operation "compiled"? |
boolean |
isReturnGeneratedKeys()
Return whether statements should be capable of returning
auto-generated keys. |
boolean |
isUpdatableResults()
Return whether statements will return updatable ResultSets. |
void |
setDataSource(DataSource dataSource)
Set the JDBC DataSource to obtain connections from. |
void |
setFetchSize(int fetchSize)
Set the fetch size for this RDBMS operation. |
void |
setGeneratedKeysColumnNames(String[] names)
Set the column names of the auto-generated keys. |
void |
setJdbcTemplate(JdbcTemplate jdbcTemplate)
An alternative to the more commonly used setDataSource() when you want to
use the same JdbcTemplate in multiple RdbmsOperations. |
void |
setMaxRows(int maxRows)
Set the maximum number of rows for this RDBMS operation. |
void |
setResultSetType(int resultSetType)
Set whether to use statements that return a specific type of ResultSet. |
void |
setReturnGeneratedKeys(boolean returnGeneratedKeys)
Set whether prepared statements should be capable of returning
auto-generated keys. |
void |
setSql(String sql)
Set the SQL executed by this operation. |
void |
setTypes(int[] types)
Add anonymous parameters, specifying only their SQL types
as defined in the java.sql.Types class. |
void |
setUpdatableResults(boolean updatableResults)
Set whether to use statements that are capable of returning
updatable ResultSets. |
protected boolean |
supportsLobParameters()
Return whether BLOB or CLOB parameters are supported
for this kind of operation. |
protected void |
validateParameters(Object[] parameters)
Validate the parameters passed to an execute method based on declared parameters. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
protected final Log logger
RdbmsOperation
public RdbmsOperation()
setJdbcTemplate
public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
- An alternative to the more commonly used setDataSource() when you want to
use the same JdbcTemplate in multiple RdbmsOperations. This is appropriate if the
JdbcTemplate has special configuration such as a SQLExceptionTranslator that should
apply to multiple RdbmsOperation objects.
getJdbcTemplate
public JdbcTemplate getJdbcTemplate()
- Return the JdbcTemplate object used by this object.
setDataSource
public void setDataSource(DataSource dataSource)
- Set the JDBC DataSource to obtain connections from.
- See Also:
JdbcAccessor.setDataSource(javax.sql.DataSource)
setFetchSize
public void setFetchSize(int fetchSize)
- Set the fetch size for this RDBMS operation. This is important for processing
large result sets: Setting this higher than the default value will increase
processing speed at the cost of memory consumption; setting this lower can
avoid transferring row data that will never be read by the application.
Default is 0, indicating to use the driver's default.
- See Also:
JdbcTemplate.setFetchSize(int)
setMaxRows
public void setMaxRows(int maxRows)
- Set the maximum number of rows for this RDBMS operation. This is important
for processing subsets of large result sets, avoiding to read and hold
the entire result set in the database or in the JDBC driver.
Default is 0, indicating to use the driver's default.
- See Also:
JdbcTemplate.setMaxRows(int)
setResultSetType
public void setResultSetType(int resultSetType)
- Set whether to use statements that return a specific type of ResultSet.
- Parameters:
resultSetType
- the ResultSet type- See Also:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,
ResultSet.TYPE_SCROLL_SENSITIVE
,
Connection.prepareStatement(String, int, int)
getResultSetType
public int getResultSetType()
- Return whether statements will return a specific type of ResultSet.
setUpdatableResults
public void setUpdatableResults(boolean updatableResults)
- Set whether to use statements that are capable of returning
updatable ResultSets.
- See Also:
Connection.prepareStatement(String, int, int)
isUpdatableResults
public boolean isUpdatableResults()
- Return whether statements will return updatable ResultSets.
setReturnGeneratedKeys
public void setReturnGeneratedKeys(boolean returnGeneratedKeys)
- Set whether prepared statements should be capable of returning
auto-generated keys.
- See Also:
Connection.prepareStatement(String, int)
isReturnGeneratedKeys
public boolean isReturnGeneratedKeys()
- Return whether statements should be capable of returning
auto-generated keys.
setGeneratedKeysColumnNames
public void setGeneratedKeysColumnNames(String[] names)
- Set the column names of the auto-generated keys.
- See Also:
Connection.prepareStatement(String, String[])
getGeneratedKeysColumnNames
public String[] getGeneratedKeysColumnNames()
- Return the column names of the auto generated keys.
setSql
public void setSql(String sql)
- Set the SQL executed by this operation.
getSql
public String getSql()
- Subclasses can override this to supply dynamic SQL if they wish,
but SQL is normally set by calling the setSql() method
or in a subclass constructor.
setTypes
public void setTypes(int[] types)
throws InvalidDataAccessApiUsageException
- Add anonymous parameters, specifying only their SQL types
as defined in the
java.sql.Types
class.
Parameter ordering is significant. This method is an alternative
to the declareParameter() method, which should normally be preferred.
- Parameters:
types
- array of SQL types as defined in the
java.sql.Types
class
- Throws:
InvalidDataAccessApiUsageException
- if the operation is already compiled
declareParameter
public void declareParameter(SqlParameter param)
throws InvalidDataAccessApiUsageException
- Declare a parameter. The order in which this method is called is significant.
- Parameters:
param
- SqlParameter to add. This will specify SQL type and (optionally)
the parameter's name.
- Throws:
InvalidDataAccessApiUsageException
- if the operation is already compiled,
and hence cannot be configured further
getDeclaredParameters
protected List getDeclaredParameters()
- Return a list of the declared SqlParameter objects.
afterPropertiesSet
public void afterPropertiesSet()
- Ensures compilation if used in a bean factory.
- Specified by:
afterPropertiesSet
in interface InitializingBean
compile
public final void compile()
throws InvalidDataAccessApiUsageException
- Compile this query.
Ignores subsequent attempts to compile.
- Throws:
InvalidDataAccessApiUsageException
- if the object hasn't
been correctly initialized, for example if no DataSource has been provided
compileInternal
protected abstract void compileInternal()
throws InvalidDataAccessApiUsageException
- Subclasses must implement to perform their own compilation.
Invoked after this class's compilation is complete.
Subclasses can assume that SQL has been supplied and that
a DataSource has been supplied.
- Throws:
InvalidDataAccessApiUsageException
- if the subclass
hasn't been properly configured.
isCompiled
public boolean isCompiled()
- Is this operation "compiled"? Compilation, as in JDO,
means that the operation is fully configured, and ready to use.
The exact meaning of compilation will vary between subclasses.
- Returns:
- whether this operation is compiled, and ready to use.
checkCompiled
protected void checkCompiled()
- Check whether this operation has been compiled already;
lazily compile it if not already compiled.
Automatically called by validateParameters
.
- See Also:
validateParameters(java.lang.Object[])
validateParameters
protected void validateParameters(Object[] parameters)
throws InvalidDataAccessApiUsageException
- Validate the parameters passed to an execute method based on declared parameters.
Subclasses should invoke this method before every
executeQuery()
or update()
method.
- Parameters:
parameters
- parameters supplied (may be null
)
- Throws:
InvalidDataAccessApiUsageException
- if the parameters are invalid
supportsLobParameters
protected boolean supportsLobParameters()
- Return whether BLOB or CLOB parameters are supported
for this kind of operation. Default is "true".
allowsUnusedParameters
protected boolean allowsUnusedParameters()
- Return whether this operation accepts additional parameters that are
given but not actually used. Applies in particular to parameter Maps.
- See Also:
StoredProcedure
Copyright (c) 2002-2007 The Spring Framework Project.