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

Modifier and Type
Method
Description
`void`
`addParameter(SqlParameter param)`
Add a new declared parameter.
`final String`
`getSql()`
Return the SQL statement to execute.
`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.
`PreparedStatementCreator`
`newPreparedStatementCreator(List<?> params)`
Return a new PreparedStatementCreator for the given parameters.
`PreparedStatementSetter`
`newPreparedStatementSetter(Object[] params)`
Return a new PreparedStatementSetter for the given parameters.
`PreparedStatementSetter`
`newPreparedStatementSetter(List<?> 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 Details

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

### 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`)