| 
 | Spring Integration | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.integration.jdbc.StoredProcExecutor
@ManagedResource public class StoredProcExecutor
This class is used by all Stored Procedure (Stored Function) components and provides the core functionality to execute those.
| Constructor Summary | |
|---|---|
| StoredProcExecutor(javax.sql.DataSource dataSource)Constructor taking DataSourcefrom which the DB Connection can be
 obtained. | |
| Method Summary | |
|---|---|
|  void | afterPropertiesSet()Verifies parameters, sets the parameters on SimpleJdbcCallOperationsand ensures the appropriateSqlParameterSourceFactoryis defined
 whenProcedureParameterare passed in. | 
|  java.util.Map<java.lang.String,java.lang.Object> | executeStoredProcedure()Execute a Stored Procedure or Function - Use when no Messageis
 available to extractProcedureParametervalues from it. | 
|  java.util.Map<java.lang.String,java.lang.Object> | executeStoredProcedure(Message<?> message)Execute a Stored Procedure or Function - Use with Messageis
 available to extractProcedureParametervalues from it. | 
|  com.google.common.cache.CacheStats | getJdbcCallOperationsCacheStatistics()Allows for the retrieval of metrics ( CacheStats}) for thejdbcCallOperationsCache, which is used to store
 instances ofSimpleJdbcCallOperations. | 
|  java.util.Map<java.lang.String,java.lang.Object> | getJdbcCallOperationsCacheStatisticsAsMap()Allows for the retrieval of metrics ( CacheStats}) for thejdbcCallOperationsCache. | 
|  java.lang.String | getStoredProcedureName() | 
|  java.lang.String | getStoredProcedureNameExpressionAsString() | 
|  void | setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)Allows to set the optional BeanFactorywhich is used to add aBeanResolverto theStandardEvaluationContext. | 
|  void | setFunction(boolean isFunction)Deprecated. Please use setIsFunction(boolean)instead. | 
|  void | setIgnoreColumnMetaData(boolean ignoreColumnMetaData)For fully supported databases, the underlying SimpleJdbcCallcan
 retrieve the parameter information for the to be invoked Stored Procedure
 from the JDBC Meta-data. | 
|  void | setIsFunction(boolean isFunction)Indicates whether a Stored Procedure or a Function is being executed. | 
|  void | setJdbcCallOperationsCacheSize(int jdbcCallOperationsCacheSize)Defines the maximum number of SimpleJdbcCallOperations(SimpleJdbcCall) instances to be held byjdbcCallOperationsCache. | 
|  void | setProcedureParameters(java.util.List<ProcedureParameter> procedureParameters)Custom Stored Procedure parameters that may contain static values or Strings representing an Expression. | 
|  void | setReturningResultSetRowMappers(java.util.Map<java.lang.String,org.springframework.jdbc.core.RowMapper<?>> returningResultSetRowMappers)If the Stored Procedure returns ResultSets you may provide a map of RowMapperto convert theResultSetto meaningful objects. | 
|  void | setReturnValueRequired(boolean returnValueRequired)Indicates the procedure's return value should be included in the results returned. | 
|  void | setSkipUndeclaredResults(boolean skipUndeclaredResults)If this variable is set to truethen all results from a stored
 procedure call that don't have a correspondingSqlOutParameterdeclaration will be bypassed. | 
|  void | setSqlParameters(java.util.List<org.springframework.jdbc.core.SqlParameter> sqlParameters)If you database system is not fully supported by Spring and thus obtaining parameter definitions from the JDBC Meta-data is not possible, you must define the SqlParameterexplicitly. | 
|  void | setSqlParameterSourceFactory(SqlParameterSourceFactory sqlParameterSourceFactory)Provides the ability to set a custom SqlParameterSourceFactory. | 
|  void | setStoredProcedureName(java.lang.String storedProcedureName)The name of the Stored Procedure or Stored Function to be executed. | 
|  void | setStoredProcedureNameExpression(org.springframework.expression.Expression storedProcedureNameExpression)Using the storedProcedureNameExpressiontheMessagecan be used as source for the name of the
 Stored Procedure or Stored Function. | 
|  void | setUsePayloadAsParameterSource(boolean usePayloadAsParameterSource)If set to 'true', the payload of the Message will be used as a source for providing parameters. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public StoredProcExecutor(javax.sql.DataSource dataSource)
DataSource from which the DB Connection can be
 obtained.
dataSource - used to create a SimpleJdbcCall instance, must not be Null| Method Detail | 
|---|
public void afterPropertiesSet()
SimpleJdbcCallOperations
 and ensures the appropriate SqlParameterSourceFactory is defined
 when ProcedureParameter are passed in.
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanpublic java.util.Map<java.lang.String,java.lang.Object> executeStoredProcedure()
Message is
 available to extract ProcedureParameter values from it.
public java.util.Map<java.lang.String,java.lang.Object> executeStoredProcedure(Message<?> message)
Message is
 available to extract ProcedureParameter values from it.
public void setIgnoreColumnMetaData(boolean ignoreColumnMetaData)
SimpleJdbcCall can
 retrieve the parameter information for the to be invoked Stored Procedure
 from the JDBC Meta-data. However, if the used database does not support
 meta data lookups or if you like to provide customized parameter definitions,
 this flag can be set to 'true'. It defaults to 'false'.
public void setProcedureParameters(java.util.List<ProcedureParameter> procedureParameters)
Expression.
public void setSqlParameters(java.util.List<org.springframework.jdbc.core.SqlParameter> sqlParameters)
SqlParameter explicitly.
public void setSqlParameterSourceFactory(SqlParameterSourceFactory sqlParameterSourceFactory)
SqlParameterSourceFactory.
 Keep in mind that if ProcedureParameter are set explicitly and
 you would like to provide a custom SqlParameterSourceFactory,
 then you must provide an instance of ExpressionEvaluatingSqlParameterSourceFactory.
 If not the SqlParameterSourceFactory will be replaced the default
 ExpressionEvaluatingSqlParameterSourceFactory.
sqlParameterSourceFactory - @ManagedAttribute(defaultValue="Null if not Set.") public java.lang.String getStoredProcedureName()
@ManagedAttribute(defaultValue="Null if not Set.") public java.lang.String getStoredProcedureNameExpressionAsString()
public void setStoredProcedureName(java.lang.String storedProcedureName)
isFunction is set to "true", then this
 property specifies the Stored Function name.
 Alternatively you can also specify the Stored Procedure name via
 setStoredProcedureNameExpression(Expression).
 E.g., that way you can specify the name of the Stored Procedure or Stored Function
 through MessageHeaders.
storedProcedureName - Must not be null and must not be emptysetStoredProcedureNameExpression(Expression)public void setStoredProcedureNameExpression(org.springframework.expression.Expression storedProcedureNameExpression)
storedProcedureNameExpression the
 Message can be used as source for the name of the
 Stored Procedure or Stored Function.
 If isFunction is set to "true", then this
 property specifies the Stored Function name.
 By providing a SpEL expression as value for this setter, a subset of the
 original payload, a header value or any other resolvable SpEL expression
 can be used as the basis for the Stored Procedure / Function.
 For the Expression evaluation the full message is available as the root object.
 For instance the following SpEL expressions (among others) are possible:
 setStoredProcedureName(String)
storedProcedureNameExpression - Must not be null.public void setUsePayloadAsParameterSource(boolean usePayloadAsParameterSource)
Message will be available
 as a source for parameters.
 If no ProcedureParameter are passed in, this property will default to
 true. This means that using a default BeanPropertySqlParameterSourceFactory
 the bean properties of the payload will be used as a source for parameter
 values for the to-be-executed Stored Procedure or Function.
 However, if ProcedureParameters are passed in, then this property
 will by default evaluate to false. ProcedureParameter
 allow for SpEl Expressions to be provided and therefore it is highly
 beneficial to have access to the entire Message.
usePayloadAsParameterSource - If false the entire Message is used as parameter source.@Deprecated public void setFunction(boolean isFunction)
setIsFunction(boolean) instead.
isFunction - If set to true an Sql Function is executed rather than a Stored Procedure.public void setIsFunction(boolean isFunction)
isFunction - If set to true an Sql Function is executed rather than a Stored Procedure.public void setReturnValueRequired(boolean returnValueRequired)
returnValueRequired - public void setSkipUndeclaredResults(boolean skipUndeclaredResults)
true then all results from a stored
 procedure call that don't have a corresponding SqlOutParameter
 declaration will be bypassed.
 E.g. Stored Procedures may return an update count value, even though your
 Stored Procedure only declared a single result parameter. The exact behavior
 depends on the used database.
 The value is set on the underlying JdbcTemplate.
 Only few developers will probably ever like to process update counts, thus
 the value defaults to true.
public void setReturningResultSetRowMappers(java.util.Map<java.lang.String,org.springframework.jdbc.core.RowMapper<?>> returningResultSetRowMappers)
RowMapper to convert the ResultSet to meaningful objects.
returningResultSetRowMappers - The map may not be null and must not contain null values.public com.google.common.cache.CacheStats getJdbcCallOperationsCacheStatistics()
CacheStats}) for the
 jdbcCallOperationsCache, which is used to store
 instances of SimpleJdbcCallOperations.
jdbcCallOperationsCache@ManagedMetric public java.util.Map<java.lang.String,java.lang.Object> getJdbcCallOperationsCacheStatisticsAsMap()
CacheStats}) for the
 jdbcCallOperationsCache.
 Provides the properties of CacheStats as a Map. This allows
 for exposing the those properties easily via JMX.
getJdbcCallOperationsCacheStatistics()public void setJdbcCallOperationsCacheSize(int jdbcCallOperationsCacheSize)
SimpleJdbcCallOperations
 (SimpleJdbcCall) instances to be held by
 jdbcCallOperationsCache.
 A value of zero will disable the cache. The default is 10.
jdbcCallOperationsCacheSize - Must not be negative.CacheBuilder.maximumSize(long)public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
BeanFactory which is used to add a
 BeanResolver to the StandardEvaluationContext. If not set
 this property defaults to null.
setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAwarebeanFactory - If set must not be null.| 
 | Spring Integration | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||