Package org.apache.camel.component.sql
Class DefaultSqlPrepareStatementStrategy
java.lang.Object
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy
- All Implemented Interfaces:
SqlPrepareStatementStrategy
public class DefaultSqlPrepareStatementStrategy
extends Object
implements SqlPrepareStatementStrategy
Default
SqlPrepareStatementStrategy
that supports named query parameters as well index based.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static org.springframework.util.CompositeIterator
<?> createInParameterIterator
(Object value) Iterator
<?> createPopulateIterator
(String query, String preparedQuery, int expectedParams, org.apache.camel.Exchange exchange, Object value) Creates the iterator to use when setting query parameters on the prepared statement.protected boolean
hasNamedParameters
(String query) protected static boolean
hasParameter
(String nextParam, org.apache.camel.Exchange exchange, Object body) protected static Object
lookupParameter
(String nextParam, org.apache.camel.Exchange exchange, Object body) void
populateStatement
(PreparedStatement ps, Iterator<?> iterator, int expectedParams) Populates the query parameters on the prepared statementprepareQuery
(String query, boolean allowNamedParameters, org.apache.camel.Exchange exchange) Prepares the query to be executed.
-
Constructor Details
-
DefaultSqlPrepareStatementStrategy
public DefaultSqlPrepareStatementStrategy() -
DefaultSqlPrepareStatementStrategy
public DefaultSqlPrepareStatementStrategy(char separator)
-
-
Method Details
-
prepareQuery
public String prepareQuery(String query, boolean allowNamedParameters, org.apache.camel.Exchange exchange) throws SQLException Description copied from interface:SqlPrepareStatementStrategy
Prepares the query to be executed.- Specified by:
prepareQuery
in interfaceSqlPrepareStatementStrategy
- Parameters:
query
- the query which may contain named query parametersallowNamedParameters
- whether named parameters is allowedexchange
- the current exchange- Returns:
- the query to actually use, which must be accepted by the JDBC driver.
- Throws:
SQLException
-
createPopulateIterator
public Iterator<?> createPopulateIterator(String query, String preparedQuery, int expectedParams, org.apache.camel.Exchange exchange, Object value) throws SQLException Description copied from interface:SqlPrepareStatementStrategy
Creates the iterator to use when setting query parameters on the prepared statement.- Specified by:
createPopulateIterator
in interfaceSqlPrepareStatementStrategy
- Parameters:
query
- the original query which may contain named parameterspreparedQuery
- the query to actually use, which must be accepted by the JDBC driver.expectedParams
- number of expected parametersexchange
- the current exchangevalue
- the message body that contains the data for the query parameters- Returns:
- the iterator
- Throws:
SQLException
- is thrown if error creating the iterator
-
populateStatement
public void populateStatement(PreparedStatement ps, Iterator<?> iterator, int expectedParams) throws SQLException Description copied from interface:SqlPrepareStatementStrategy
Populates the query parameters on the prepared statement- Specified by:
populateStatement
in interfaceSqlPrepareStatementStrategy
- Parameters:
ps
- the prepared statementiterator
- the iterator to use for getting the parameter dataexpectedParams
- number of expected parameters- Throws:
SQLException
- is thrown if error populating parameters
-
hasNamedParameters
-
lookupParameter
-
hasParameter
-
createInParameterIterator
protected static org.springframework.util.CompositeIterator<?> createInParameterIterator(Object value)
-