Package org.springframework.jdbc.core.namedparam

# Class MapSqlParameterSource

java.lang.Object
org.springframework.jdbc.core.namedparam.AbstractSqlParameterSource
org.springframework.jdbc.core.namedparam.MapSqlParameterSource

All Implemented Interfaces:
  `SqlParameterSource`

public class MapSqlParameterSource extends AbstractSqlParameterSource
`SqlParameterSource` implementation that holds a given Map of parameters.

This class is intended for passing in a simple Map of parameter values to the methods of the `NamedParameterJdbcTemplate` class.

The `addValue` methods on this class will make adding several values easier. The methods return a reference to the `MapSqlParameterSource` itself, so you can chain several method calls together within a single statement.

Since:
  2.0
Author:
  Thomas Risberg, Juergen Hoeller
See Also:
  - `addValue(String, Object)`
  - `addValue(String, Object, int)`
  - `AbstractSqlParameterSource.registerSqlType(java.lang.String, int)`
  - `NamedParameterJdbcTemplate`

## Field Summary

### Fields inherited from interface org.springframework.jdbc.core.namedparam.SqlParameterSource

`TYPE_UNKNOWN`

## Constructor Summary

Constructors
Constructor
Description
`MapSqlParameterSource()`
Create an empty MapSqlParameterSource, with values to be added via `addValue`.
`MapSqlParameterSource(String paramName, Object value)`
Create a new MapSqlParameterSource, with one value comprised of the supplied arguments.
`MapSqlParameterSource(Map<String,?> values)`
Create a new MapSqlParameterSource based on a Map.

## Method Summary

Modifier and Type
Method
Description
`MapSqlParameterSource`
`addValue(String paramName, Object value)`
Add a parameter to this parameter source.
`MapSqlParameterSource`
`addValue(String paramName, Object value, int sqlType)`
Add a parameter to this parameter source.
`MapSqlParameterSource`
`addValue(String paramName, Object value, int sqlType, String typeName)`
Add a parameter to this parameter source.
`MapSqlParameterSource`
`addValues(Map<String,?> values)`
Add a Map of parameters to this parameter source.
`String[]`
`getParameterNames()`
Enumerate all available parameter names if possible.
`Object`
`getValue(String paramName)`
Return the parameter value for the requested named parameter.
`Map<String,Object>`
`getValues()`
Expose the current parameter values as read-only Map.
`boolean`
`hasValue(String paramName)`
Determine whether there is a value for the specified named parameter.
`boolean`
`hasValues()`
Return whether this parameter source has been configured with any values.

### Methods inherited from class org.springframework.jdbc.core.namedparam.AbstractSqlParameterSource

`getSqlType, getTypeName, registerSqlType, registerTypeName, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### MapSqlParameterSource

public MapSqlParameterSource()
Create an empty MapSqlParameterSource, with values to be added via `addValue`.

See Also:
  - `addValue(String, Object)`

### MapSqlParameterSource

public MapSqlParameterSource(String paramName, @Nullable Object value)
Create a new MapSqlParameterSource, with one value comprised of the supplied arguments.

Parameters:
  `paramName` - the name of the parameter
  `value` - the value of the parameter
See Also:
  - `addValue(String, Object)`

### MapSqlParameterSource

public MapSqlParameterSource(@Nullable Map<String,?> values)
Create a new MapSqlParameterSource based on a Map.

Parameters:
  `values` - a Map holding existing parameter values (can be `null`)

## Method Details

### addValue

public MapSqlParameterSource addValue(String paramName, @Nullable Object value)
Add a parameter to this parameter source.

Parameters:
  `paramName` - the name of the parameter
  `value` - the value of the parameter
Returns:
  a reference to this parameter source, so it's possible to chain several calls together

### addValue

public MapSqlParameterSource addValue(String paramName, @Nullable Object value, int sqlType)
Add a parameter to this parameter source.

Parameters:
  `paramName` - the name of the parameter
  `value` - the value of the parameter
  `sqlType` - the SQL type of the parameter
Returns:
  a reference to this parameter source, so it's possible to chain several calls together

### addValue

public MapSqlParameterSource addValue(String paramName, @Nullable Object value, int sqlType, String typeName)
Add a parameter to this parameter source.

Parameters:
  `paramName` - the name of the parameter
  `value` - the value of the parameter
  `sqlType` - the SQL type of the parameter
  `typeName` - the type name of the parameter
Returns:
  a reference to this parameter source, so it's possible to chain several calls together

### addValues

public MapSqlParameterSource addValues(@Nullable Map<String,?> values)
Add a Map of parameters to this parameter source.

Parameters:
  `values` - a Map holding existing parameter values (can be `null`)
Returns:
  a reference to this parameter source, so it's possible to chain several calls together

### hasValues

public boolean hasValues()
Return whether this parameter source has been configured with any values.

Since:
  6.1

### getValues

public Map<String,Object> getValues()
Expose the current parameter values as read-only Map.

### hasValue

public boolean hasValue(String paramName)
Description copied from interface: `SqlParameterSource`
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 public Object getValue(String paramName)
Description copied from interface: `SqlParameterSource`
Return the parameter value for the requested named parameter.

Parameters:
  `paramName` - the name of the parameter
Returns:
  the value of the specified parameter

### getParameterNames

@NonNull public String[] getParameterNames()
Description copied from interface: `SqlParameterSource`
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
See Also:
  - `SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(org.springframework.jdbc.core.namedparam.SqlParameterSource)`