Package org.springframework.jdbc.core
Class StatementCreatorUtils
java.lang.Object
org.springframework.jdbc.core.StatementCreatorUtils
Utility methods for PreparedStatementSetter/Creator and CallableStatementCreator
implementations, providing sophisticated parameter management (including support
for LOB values).
Used by PreparedStatementCreatorFactory and CallableStatementCreatorFactory, but also available for direct use in custom setter/creator implementations.
- Since:
- 1.1
- Author:
- Thomas Risberg, Juergen Hoeller
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
System property that instructs Spring to ignoreParameterMetaData.getParameterType(int)
completely, i.e. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
cleanupParameters
(Object... paramValues) Clean up all resources held by parameter values which were passed to an execute method.static void
cleanupParameters
(Collection<?> paramValues) Clean up all resources held by parameter values which were passed to an execute method.static int
javaTypeToSqlParameterType
(Class<?> javaType) Derive a default SQL type from the given Java type.static void
setParameterValue
(PreparedStatement ps, int paramIndex, int sqlType, Object inValue) Set the value for a parameter.static void
setParameterValue
(PreparedStatement ps, int paramIndex, int sqlType, String typeName, Object inValue) Set the value for a parameter.static void
setParameterValue
(PreparedStatement ps, int paramIndex, SqlParameter param, Object inValue) Set the value for a parameter.
-
Field Details
-
IGNORE_GETPARAMETERTYPE_PROPERTY_NAME
System property that instructs Spring to ignoreParameterMetaData.getParameterType(int)
completely, i.e. to never even attempt to retrievePreparedStatement.getParameterMetaData()
forsetNull(java.sql.PreparedStatement, int, int, java.lang.String)
calls.The default is "false", trying
getParameterType
calls first and falling back toPreparedStatement.setNull(int, int)
/PreparedStatement.setObject(int, java.lang.Object, int)
calls based on well-known behavior of common databases.Consider switching this flag to "true" if you experience misbehavior at runtime, e.g. with connection pool issues in case of an exception thrown from
getParameterType
(as reported on JBoss AS 7) or in case of performance problems (as reported on PostgreSQL).- See Also:
-
-
Constructor Details
-
StatementCreatorUtils
public StatementCreatorUtils()
-
-
Method Details
-
javaTypeToSqlParameterType
Derive a default SQL type from the given Java type.- Parameters:
javaType
- the Java type to translate- Returns:
- the corresponding SQL type, or
SqlTypeValue.TYPE_UNKNOWN
if none found
-
setParameterValue
public static void setParameterValue(PreparedStatement ps, int paramIndex, SqlParameter param, @Nullable Object inValue) throws SQLException Set the value for a parameter. The method used is based on the SQL type of the parameter and we can handle complex types like arrays and LOBs.- Parameters:
ps
- the prepared statement or callable statementparamIndex
- index of the parameter we are settingparam
- the parameter as it is declared including typeinValue
- the value to set- Throws:
SQLException
- if thrown by PreparedStatement methods
-
setParameterValue
public static void setParameterValue(PreparedStatement ps, int paramIndex, int sqlType, @Nullable Object inValue) throws SQLException Set the value for a parameter. The method used is based on the SQL type of the parameter and we can handle complex types like arrays and LOBs.- Parameters:
ps
- the prepared statement or callable statementparamIndex
- index of the parameter we are settingsqlType
- the SQL type of the parameterinValue
- the value to set (plain value or an SqlTypeValue)- Throws:
SQLException
- if thrown by PreparedStatement methods- See Also:
-
setParameterValue
public static void setParameterValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName, @Nullable Object inValue) throws SQLException Set the value for a parameter. The method used is based on the SQL type of the parameter and we can handle complex types like arrays and LOBs.- Parameters:
ps
- the prepared statement or callable statementparamIndex
- index of the parameter we are settingsqlType
- the SQL type of the parametertypeName
- the type name of the parameter (optional, only used for SQL NULL and SqlTypeValue)inValue
- the value to set (plain value or an SqlTypeValue)- Throws:
SQLException
- if thrown by PreparedStatement methods- See Also:
-
cleanupParameters
Clean up all resources held by parameter values which were passed to an execute method. This is for example important for closing LOB values.- Parameters:
paramValues
- parameter values supplied. May benull
.- See Also:
-
cleanupParameters
Clean up all resources held by parameter values which were passed to an execute method. This is for example important for closing LOB values.- Parameters:
paramValues
- parameter values supplied. May benull
.- See Also:
-