## org.springframework.jdbc.core
Class PreparedStatementCreatorFactory

    java.lang.Object
      org.springframework.jdbc.core.PreparedStatementCreatorFactory

    public class PreparedStatementCreatorFactory

extends Object

Helper class that efficiently creates multiple `PreparedStatementCreator` objects with different parameters based on a SQL statement and a single set of parameter declarations.

Author:
  Rod Johnson, Thomas Risberg, Juergen Hoeller

Constructor Summary
`PreparedStatementCreatorFactory(String sql)` Create a new factory.
`PreparedStatementCreatorFactory(String sql, int[] types)` Create a new factory with the given SQL and JDBC types.
`PreparedStatementCreatorFactory(String sql, List<SqlParameter> declaredParameters)` Create a new factory with the given SQL and parameters.

Method Summary
`void` `addParameter(SqlParameter param)` Add a new declared parameter.
`PreparedStatementCreator` `newPreparedStatementCreator(List<?> params)` Return a new PreparedStatementCreator for the given parameters.
`PreparedStatementCreator` `newPreparedStatementCreator(Object[] params)` Return a new PreparedStatementCreator for the given parameters.
`PreparedStatementCreator` `newPreparedStatementCreator(String sqlToUse, Object[] params)` Return a new PreparedStatementCreator for the given parameters.
`PreparedStatementSetter` `newPreparedStatementSetter(List<?> params)` Return a new PreparedStatementSetter for the given parameters.
`PreparedStatementSetter` `newPreparedStatementSetter(Object[] params)` Return a new PreparedStatementSetter for the given parameters.
`void` `setGeneratedKeysColumnNames(String[] names)` Set the column names of the auto-generated keys.
`void` `setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)` Specify the NativeJdbcExtractor to use for unwrapping PreparedStatements, if any.
`void` `setResultSetType(int resultSetType)` Set whether to use prepared 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` `setUpdatableResults(boolean updatableResults)` Set whether to use prepared statements capable of returning updatable ResultSets.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PreparedStatementCreatorFactory

    public PreparedStatementCreatorFactory(String sql)

  Create a new factory. Will need to add parameters via the `addParameter(org.springframework.jdbc.core.SqlParameter)` method or have no parameters.

### PreparedStatementCreatorFactory

    public PreparedStatementCreatorFactory(String sql,
                                           int[] types)

  Create a new factory with the given SQL and JDBC types.

  Parameters:
    `sql` - SQL to execute
    `types` - int array of JDBC types

### PreparedStatementCreatorFactory

    public PreparedStatementCreatorFactory(String sql,
                                           List<SqlParameter> declaredParameters)

  Create a new factory with the given SQL and parameters.

  Parameters:
    `sql` - SQL
    `declaredParameters` - list of `SqlParameter` objects
  See Also:
    `SqlParameter`

Method Detail

### addParameter

    public void addParameter(SqlParameter param)

  Add a new declared parameter.

  Order of parameter addition is significant.

  Parameters:
    `param` - the parameter to add to the list of declared parameters

### setResultSetType

    public void setResultSetType(int resultSetType)

  Set whether to use prepared 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`

### setUpdatableResults

    public void setUpdatableResults(boolean updatableResults)

  Set whether to use prepared statements capable of returning updatable ResultSets.

### setReturnGeneratedKeys

    public void setReturnGeneratedKeys(boolean returnGeneratedKeys)

  Set whether prepared statements should be capable of returning auto-generated keys.

### setGeneratedKeysColumnNames

    public void setGeneratedKeysColumnNames(String[] names)

  Set the column names of the auto-generated keys.

### setNativeJdbcExtractor

    public void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor)

  Specify the NativeJdbcExtractor to use for unwrapping PreparedStatements, if any.

### newPreparedStatementSetter

    public PreparedStatementSetter newPreparedStatementSetter(List<?> params)

  Return a new PreparedStatementSetter for the given parameters.

  Parameters:
    `params` - list of parameters (may be `null`)

### newPreparedStatementSetter

    public PreparedStatementSetter newPreparedStatementSetter(Object[] params)

  Return a new PreparedStatementSetter for the given parameters.

  Parameters:
    `params` - the parameter array (may be `null`)

### newPreparedStatementCreator

    public PreparedStatementCreator newPreparedStatementCreator(List<?> params)

  Return a new PreparedStatementCreator for the given parameters.

  Parameters:
    `params` - list of parameters (may be `null`)

### newPreparedStatementCreator

    public PreparedStatementCreator newPreparedStatementCreator(Object[] params)

  Return a new PreparedStatementCreator for the given parameters.

  Parameters:
    `params` - the parameter array (may be `null`)

### newPreparedStatementCreator

    public PreparedStatementCreator newPreparedStatementCreator(String sqlToUse,
                                                                Object[] params)

  Return a new PreparedStatementCreator for the given parameters.

  Parameters:
    `sqlToUse` - the actual SQL statement to use (if different from the factory's, for example because of named parameter expanding)
    `params` - the parameter array (may be `null`)