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 an 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addParameter(SqlParameter param)` Add a new declared parameter.
    `String` | `getSql()` Return the SQL statement to execute.
    `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` | `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.
      Parameters:
        `sql` - the SQL statement to execute

    - #### PreparedStatementCreatorFactory

          public PreparedStatementCreatorFactory(String sql,
                                                 int... types)

      Create a new factory with the given SQL and JDBC types.
      Parameters:
        `sql` - the SQL statement 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` - the SQL statement to execute
        `declaredParameters` - list of `SqlParameter` objects

  - ### Method Detail

    - #### getSql

          public final String getSql()

      Return the SQL statement to execute.
      Since:
        5.1.3

    - #### 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.

    - #### newPreparedStatementSetter

          public PreparedStatementSetter newPreparedStatementSetter(@Nullable
                                                                    List<?> params)

      Return a new PreparedStatementSetter for the given parameters.
      Parameters:
        `params` - list of parameters (may be `null`)

    - #### newPreparedStatementSetter

          public PreparedStatementSetter newPreparedStatementSetter(@Nullable
                                                                    Object[] params)

      Return a new PreparedStatementSetter for the given parameters.
      Parameters:
        `params` - the parameter array (may be `null`)

    - #### newPreparedStatementCreator

          public PreparedStatementCreator newPreparedStatementCreator(@Nullable
                                                                      List<?> params)

      Return a new PreparedStatementCreator for the given parameters.
      Parameters:
        `params` - list of parameters (may be `null`)

    - #### newPreparedStatementCreator

          public PreparedStatementCreator newPreparedStatementCreator(@Nullable
                                                                      Object[] params)

      Return a new PreparedStatementCreator for the given parameters.
      Parameters:
        `params` - the parameter array (may be `null`)

    - #### newPreparedStatementCreator

          public PreparedStatementCreator newPreparedStatementCreator(String sqlToUse,
                                                                      @Nullable
                                                                      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`)