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

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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`)