public abstract class

NamedParameterUtils

extends Object
java.lang.Object
   ↳ org.springframework.jdbc.core.namedparam.NamedParameterUtils

Class Overview

Helper methods for named parameter parsing. Only intended for internal use within Spring's JDBC framework.

Summary

Public Constructors
NamedParameterUtils()
Public Methods
static List<SqlParameter> buildSqlParameterList(ParsedSql parsedSql, SqlParameterSource paramSource)
Convert parameter declarations from an SqlParameterSource to a corresponding List of SqlParameters.
static int[] buildSqlTypeArray(ParsedSql parsedSql, SqlParameterSource paramSource)
Convert parameter types from an SqlParameterSource into a corresponding int array.
static Object[] buildValueArray(ParsedSql parsedSql, SqlParameterSource paramSource, List<SqlParameter> declaredParams)
Convert a Map of named parameter values to a corresponding array.
static Object[] buildValueArray(String sql, Map<String, ?> paramMap)
Convert a Map of named parameter values to a corresponding array.
static ParsedSql parseSqlStatement(String sql)
Parse the SQL statement and locate any placeholders or named parameters.
static String parseSqlStatementIntoString(String sql)
Parse the SQL statement and locate any placeholders or named parameters.
static String substituteNamedParameters(ParsedSql parsedSql, SqlParameterSource paramSource)
Parse the SQL statement and locate any placeholders or named parameters.
static String substituteNamedParameters(String sql, SqlParameterSource paramSource)
Parse the SQL statement and locate any placeholders or named parameters.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public NamedParameterUtils ()

Public Methods

public static List<SqlParameter> buildSqlParameterList (ParsedSql parsedSql, SqlParameterSource paramSource)

Convert parameter declarations from an SqlParameterSource to a corresponding List of SqlParameters. This is necessary in order to reuse existing methods on JdbcTemplate. The SqlParameter for a named parameter is placed in the correct position in the resulting list based on the parsed SQL statement info.

Parameters
parsedSql the parsed SQL statement
paramSource the source for named parameters

public static int[] buildSqlTypeArray (ParsedSql parsedSql, SqlParameterSource paramSource)

Convert parameter types from an SqlParameterSource into a corresponding int array. This is necessary in order to reuse existing methods on JdbcTemplate. Any named parameter types are placed in the correct position in the Object array based on the parsed SQL statement info.

Parameters
parsedSql the parsed SQL statement
paramSource the source for named parameters

public static Object[] buildValueArray (ParsedSql parsedSql, SqlParameterSource paramSource, List<SqlParameter> declaredParams)

Convert a Map of named parameter values to a corresponding array.

Parameters
parsedSql the parsed SQL statement
paramSource the source for named parameters
declaredParams the List of declared SqlParameter objects (may be null). If specified, the parameter metadata will be built into the value array in the form of SqlParameterValue objects.
Returns
  • the array of values

public static Object[] buildValueArray (String sql, Map<String, ?> paramMap)

Convert a Map of named parameter values to a corresponding array.

This is a shortcut version of buildValueArray(ParsedSql, SqlParameterSource, java.util.List).

Parameters
sql the SQL statement
paramMap the Map of parameters
Returns
  • the array of values

public static ParsedSql parseSqlStatement (String sql)

Parse the SQL statement and locate any placeholders or named parameters. Named parameters are substituted for a JDBC placeholder.

Parameters
sql the SQL statement
Returns
  • the parsed statement, represented as ParsedSql instance

public static String parseSqlStatementIntoString (String sql)

Parse the SQL statement and locate any placeholders or named parameters. Named parameters are substituted for a JDBC placeholder.

This is a shortcut version of parseSqlStatement(String) in combination with substituteNamedParameters(ParsedSql, SqlParameterSource).

Parameters
sql the SQL statement
Returns
  • the actual (parsed) SQL statement

public static String substituteNamedParameters (ParsedSql parsedSql, SqlParameterSource paramSource)

Parse the SQL statement and locate any placeholders or named parameters. Named parameters are substituted for a JDBC placeholder and any select list is expanded to the required number of placeholders. Select lists may contain an array of objects and in that case the placeholders will be grouped and enclosed with parantheses. This allows for the use of "expression lists" in the SQL statement like:
select id, name, state from table where (name, age) in (('John', 35), ('Ann', 50))

The parameter values passed in are used to determine the number of placeholder to be used for a select list. Select lists should be limited to 100 or fewer elements. A larger number of elements is not guaramteed to be supported by the database and is strictly vendor-dependent.

Parameters
parsedSql the parsed represenation of the SQL statement
paramSource the source for named parameters
Returns
  • the SQL statement with substituted parameters

public static String substituteNamedParameters (String sql, SqlParameterSource paramSource)

Parse the SQL statement and locate any placeholders or named parameters. Named parameters are substituted for a JDBC placeholder and any select list is expanded to the required number of placeholders.

This is a shortcut version of substituteNamedParameters(ParsedSql, SqlParameterSource).

Parameters
sql the SQL statement
paramSource the source for named parameters
Returns
  • the SQL statement with substituted parameters