Package org.springframework.jdbc.core.namedparam

# Interface SqlParameterSource

All Known Implementing Classes:
  `AbstractSqlParameterSource`, `BeanPropertySqlParameterSource`, `EmptySqlParameterSource`, `MapSqlParameterSource`, `SimplePropertySqlParameterSource`

public interface SqlParameterSource
Interface that defines common functionality for objects that can offer parameter values for named SQL parameters, serving as argument for `NamedParameterJdbcTemplate` operations.

This interface allows for the specification of SQL type in addition to parameter values. All parameter values and types are identified by specifying the name of the parameter.

Intended to wrap various implementations like a Map or a JavaBean with a consistent interface.

Since:
  2.0
Author:
  Thomas Risberg, Juergen Hoeller
See Also:
  - `NamedParameterJdbcOperations`
  - `NamedParameterJdbcTemplate`
  - `MapSqlParameterSource`
  - `BeanPropertySqlParameterSource`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`TYPE_UNKNOWN`
Constant that indicates an unknown (or unspecified) SQL type.

## Method Summary

Modifier and Type
Method
Description
`default String[]`
`getParameterNames()`
Enumerate all available parameter names if possible.
`default int`
`getSqlType(String paramName)`
Determine the SQL type for the specified named parameter.
`default String`
`getTypeName(String paramName)`
Determine the type name for the specified named parameter.
`Object`
`getValue(String paramName)`
Return the parameter value for the requested named parameter.
`boolean`
`hasValue(String paramName)`
Determine whether there is a value for the specified named parameter.

## Field Details

### TYPE_UNKNOWN

static final int TYPE_UNKNOWN
Constant that indicates an unknown (or unspecified) SQL type. To be returned from `getType` when no specific SQL type known.

See Also:
  - `getSqlType(java.lang.String)`
  - `Types`
  - Constant Field Values

## Method Details

### hasValue

boolean hasValue(String paramName)
Determine whether there is a value for the specified named parameter.

Parameters:
  `paramName` - the name of the parameter
Returns:
  whether there is a value defined

### getValue

@Nullable Object getValue(String paramName) throws IllegalArgumentException
Return the parameter value for the requested named parameter.

Parameters:
  `paramName` - the name of the parameter
Returns:
  the value of the specified parameter
Throws:
  `IllegalArgumentException` - if there is no value for the requested parameter

### getSqlType

default int getSqlType(String paramName)
Determine the SQL type for the specified named parameter.

Parameters:
  `paramName` - the name of the parameter
Returns:
  the SQL type of the specified parameter, or `TYPE_UNKNOWN` if not known
See Also:
  - `TYPE_UNKNOWN`

### getTypeName

@Nullable default String getTypeName(String paramName)
Determine the type name for the specified named parameter.

Parameters:
  `paramName` - the name of the parameter
Returns:
  the type name of the specified parameter, or `null` if not known

### getParameterNames

@Nullable default String[] getParameterNames()
Enumerate all available parameter names if possible.

This is an optional operation, primarily for use with `SimpleJdbcInsert` and `SimpleJdbcCall`.

Returns:
  the array of parameter names, or `null` if not determinable
Since:
  5.0.3
See Also:
  - `SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(org.springframework.jdbc.core.namedparam.SqlParameterSource)`