Interface NamedParameterJdbcOperations

All Known Implementing Classes:
NamedParameterJdbcTemplate

public interface NamedParameterJdbcOperations
Interface specifying a basic set of JDBC operations allowing the use of named parameters rather than the traditional '?' placeholders.

This is an alternative to the classic JdbcOperations interface, implemented by NamedParameterJdbcTemplate. This interface is not often used directly, but provides a useful option to enhance testability, as it can easily be mocked or stubbed.

Since:
2.0
Author:
Thomas Risberg, Juergen Hoeller
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    int[]
    batchUpdate(String sql, Map<String,?>[] batchValues)
    Executes a batch using the supplied SQL statement with the batch of supplied arguments.
    int[]
    Execute a batch using the supplied SQL statement with the batch of supplied arguments.
    <T> T
    execute(String sql, Map<String,?> paramMap, PreparedStatementCallback<T> action)
    Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement.
    <T> T
    Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement.
    <T> T
    Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement.
    Expose the classic Spring JdbcTemplate to allow invocation of classic JDBC operations.
    <T> T
    query(String sql, Map<String,?> paramMap, ResultSetExtractor<T> rse)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet with a ResultSetExtractor.
    void
    query(String sql, Map<String,?> paramMap, RowCallbackHandler rch)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet on a per-row basis with a RowCallbackHandler.
    <T> List<T>
    query(String sql, Map<String,?> paramMap, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.
    <T> T
    query(String sql, SqlParameterSource paramSource, ResultSetExtractor<T> rse)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet with a ResultSetExtractor.
    void
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet on a per-row basis with a RowCallbackHandler.
    <T> List<T>
    query(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.
    <T> T
    Query given SQL to create a prepared statement from SQL, reading the ResultSet with a ResultSetExtractor.
    void
    Query given SQL to create a prepared statement from SQL, reading the ResultSet on a per-row basis with a RowCallbackHandler.
    <T> List<T>
    query(String sql, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL, mapping each row to a Java object via a RowMapper.
    queryForList(String sql, Map<String,?> paramMap)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.
    <T> List<T>
    queryForList(String sql, Map<String,?> paramMap, Class<T> elementType)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.
    <T> List<T>
    queryForList(String sql, SqlParameterSource paramSource, Class<T> elementType)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.
    queryForMap(String sql, Map<String,?> paramMap)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result Map.
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result Map.
    <T> T
    queryForObject(String sql, Map<String,?> paramMap, Class<T> requiredType)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result object.
    <T> T
    queryForObject(String sql, Map<String,?> paramMap, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping a single result row to a Java object via a RowMapper.
    <T> T
    queryForObject(String sql, SqlParameterSource paramSource, Class<T> requiredType)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result object.
    <T> T
    queryForObject(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping a single result row to a Java object via a RowMapper.
    queryForRowSet(String sql, Map<String,?> paramMap)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting an SqlRowSet.
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting an SqlRowSet.
    <T> Stream<T>
    queryForStream(String sql, Map<String,?> paramMap, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper, and turning it into an iterable and closeable Stream.
    <T> Stream<T>
    queryForStream(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper)
    Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper, and turning it into an iterable and closeable Stream.
    int
    update(String sql, Map<String,?> paramMap)
    Issue an update via a prepared statement, binding the given arguments.
    int
    update(String sql, SqlParameterSource paramSource)
    Issue an update via a prepared statement, binding the given arguments.
    int
    update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)
    Issue an update via a prepared statement, binding the given arguments, returning generated keys.
    int
    update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames)
    Issue an update via a prepared statement, binding the given arguments, returning generated keys.
  • Method Details

    • getJdbcOperations

      JdbcOperations getJdbcOperations()
      Expose the classic Spring JdbcTemplate to allow invocation of classic JDBC operations.
    • execute

      @Nullable <T> T execute(String sql, SqlParameterSource paramSource, PreparedStatementCallback<T> action) throws DataAccessException
      Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement. This allows for implementing arbitrary data access operations on a single Statement, within Spring's managed JDBC environment: that is, participating in Spring-managed transactions and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
      sql - the SQL to execute
      paramSource - container of arguments to bind to the query
      action - callback object that specifies the action
      Returns:
      a result object returned by the action, or null
      Throws:
      DataAccessException - if there is any problem
    • execute

      @Nullable <T> T execute(String sql, Map<String,?> paramMap, PreparedStatementCallback<T> action) throws DataAccessException
      Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement. This allows for implementing arbitrary data access operations on a single Statement, within Spring's managed JDBC environment: that is, participating in Spring-managed transactions and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
      sql - the SQL to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      action - callback object that specifies the action
      Returns:
      a result object returned by the action, or null
      Throws:
      DataAccessException - if there is any problem
    • execute

      @Nullable <T> T execute(String sql, PreparedStatementCallback<T> action) throws DataAccessException
      Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement. This allows for implementing arbitrary data access operations on a single Statement, within Spring's managed JDBC environment: that is, participating in Spring-managed transactions and converting JDBC SQLExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
      sql - the SQL to execute
      action - callback object that specifies the action
      Returns:
      a result object returned by the action, or null
      Throws:
      DataAccessException - if there is any problem
    • query

      @Nullable <T> T query(String sql, SqlParameterSource paramSource, ResultSetExtractor<T> rse) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet with a ResultSetExtractor.
      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      rse - object that will extract results
      Returns:
      an arbitrary result object, as returned by the ResultSetExtractor
      Throws:
      DataAccessException - if the query fails
    • query

      @Nullable <T> T query(String sql, Map<String,?> paramMap, ResultSetExtractor<T> rse) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet with a ResultSetExtractor.
      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      rse - object that will extract results
      Returns:
      an arbitrary result object, as returned by the ResultSetExtractor
      Throws:
      DataAccessException - if the query fails
    • query

      @Nullable <T> T query(String sql, ResultSetExtractor<T> rse) throws DataAccessException
      Query given SQL to create a prepared statement from SQL, reading the ResultSet with a ResultSetExtractor.

      Note: In contrast to the JdbcOperations method with the same signature, this query variant always uses a PreparedStatement. It is effectively equivalent to a query call with an empty parameter Map.

      Parameters:
      sql - the SQL query to execute
      rse - object that will extract results
      Returns:
      an arbitrary result object, as returned by the ResultSetExtractor
      Throws:
      DataAccessException - if the query fails
    • query

      void query(String sql, SqlParameterSource paramSource, RowCallbackHandler rch) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet on a per-row basis with a RowCallbackHandler.
      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      rch - object that will extract results, one row at a time
      Throws:
      DataAccessException - if the query fails
    • query

      void query(String sql, Map<String,?> paramMap, RowCallbackHandler rch) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, reading the ResultSet on a per-row basis with a RowCallbackHandler.
      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      rch - object that will extract results, one row at a time
      Throws:
      DataAccessException - if the query fails
    • query

      void query(String sql, RowCallbackHandler rch) throws DataAccessException
      Query given SQL to create a prepared statement from SQL, reading the ResultSet on a per-row basis with a RowCallbackHandler.

      Note: In contrast to the JdbcOperations method with the same signature, this query variant always uses a PreparedStatement. It is effectively equivalent to a query call with an empty parameter Map.

      Parameters:
      sql - the SQL query to execute
      rch - object that will extract results, one row at a time
      Throws:
      DataAccessException - if the query fails
    • query

      <T> List<T> query(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.
      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      rowMapper - object that will map one object per row
      Returns:
      the result List, containing mapped objects
      Throws:
      DataAccessException - if the query fails
    • query

      <T> List<T> query(String sql, Map<String,?> paramMap, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.
      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      rowMapper - object that will map one object per row
      Returns:
      the result List, containing mapped objects
      Throws:
      DataAccessException - if the query fails
    • query

      <T> List<T> query(String sql, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL, mapping each row to a Java object via a RowMapper.

      Note: In contrast to the JdbcOperations method with the same signature, this query variant always uses a PreparedStatement. It is effectively equivalent to a query call with an empty parameter Map.

      Parameters:
      sql - the SQL query to execute
      rowMapper - object that will map one object per row
      Returns:
      the result List, containing mapped objects
      Throws:
      DataAccessException - if the query fails
    • queryForStream

      <T> Stream<T> queryForStream(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper, and turning it into an iterable and closeable Stream.
      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      rowMapper - object that will map one object per row
      Returns:
      the result Stream, containing mapped objects, needing to be closed once fully processed (e.g. through a try-with-resources clause)
      Throws:
      DataAccessException - if the query fails
      Since:
      5.3
    • queryForStream

      <T> Stream<T> queryForStream(String sql, Map<String,?> paramMap, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper, and turning it into an iterable and closeable Stream.
      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      rowMapper - object that will map one object per row
      Returns:
      the result Stream, containing mapped objects, needing to be closed once fully processed (e.g. through a try-with-resources clause)
      Throws:
      DataAccessException - if the query fails
      Since:
      5.3
    • queryForObject

      @Nullable <T> T queryForObject(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping a single result row to a Java object via a RowMapper.
      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      rowMapper - object that will map one object per row
      Returns:
      the single mapped object (may be null if the given RowMapper returned null)
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      DataAccessException - if the query fails
    • queryForObject

      @Nullable <T> T queryForObject(String sql, Map<String,?> paramMap, RowMapper<T> rowMapper) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, mapping a single result row to a Java object via a RowMapper.
      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      rowMapper - object that will map one object per row
      Returns:
      the single mapped object (may be null if the given RowMapper returned null)
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      DataAccessException - if the query fails
    • queryForObject

      @Nullable <T> T queryForObject(String sql, SqlParameterSource paramSource, Class<T> requiredType) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result object.

      The query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.

      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      requiredType - the type that the result object is expected to match
      Returns:
      the result object of the required type, or null in case of SQL NULL
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      IncorrectResultSetColumnCountException - if the query does not return a row containing a single column
      DataAccessException - if the query fails
      See Also:
    • queryForObject

      @Nullable <T> T queryForObject(String sql, Map<String,?> paramMap, Class<T> requiredType) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result object.

      The query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.

      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      requiredType - the type that the result object is expected to match
      Returns:
      the result object of the required type, or null in case of SQL NULL
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      IncorrectResultSetColumnCountException - if the query does not return a row containing a single column
      DataAccessException - if the query fails
      See Also:
    • queryForMap

      Map<String,Object> queryForMap(String sql, SqlParameterSource paramSource) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result Map.

      The query is expected to be a single row query; the result row will be mapped to a Map (one entry for each column, using the column name as the key).

      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      Returns:
      the result Map (one entry for each column, using the column name as the key)
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      DataAccessException - if the query fails
      See Also:
    • queryForMap

      Map<String,Object> queryForMap(String sql, Map<String,?> paramMap) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result Map. The queryForMap() methods defined by this interface are appropriate when you don't have a domain model. Otherwise, consider using one of the queryForObject() methods.

      The query is expected to be a single row query; the result row will be mapped to a Map (one entry for each column, using the column name as the key).

      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      Returns:
      the result Map (one entry for each column, using the column name as the key)
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      DataAccessException - if the query fails
      See Also:
    • queryForList

      <T> List<T> queryForList(String sql, SqlParameterSource paramSource, Class<T> elementType) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.

      The results will be mapped to a List (one entry for each row) of result objects, each of them matching the specified element type.

      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      elementType - the required type of element in the result list (for example, Integer.class)
      Returns:
      a List of objects that match the specified element type
      Throws:
      DataAccessException - if the query fails
      See Also:
    • queryForList

      <T> List<T> queryForList(String sql, Map<String,?> paramMap, Class<T> elementType) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.

      The results will be mapped to a List (one entry for each row) of result objects, each of them matching the specified element type.

      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      elementType - the required type of element in the result list (for example, Integer.class)
      Returns:
      a List of objects that match the specified element type
      Throws:
      DataAccessException - if the query fails
      See Also:
    • queryForList

      List<Map<String,Object>> queryForList(String sql, SqlParameterSource paramSource) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.

      The results will be mapped to a List (one entry for each row) of Maps (one entry for each column, using the column name as the key). Each element in the list will be of the form returned by this interface's queryForMap methods.

      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      Returns:
      a List that contains a Map per row
      Throws:
      DataAccessException - if the query fails
      See Also:
    • queryForList

      List<Map<String,Object>> queryForList(String sql, Map<String,?> paramMap) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting a result list.

      The results will be mapped to a List (one entry for each row) of Maps (one entry for each column, using the column name as the key). Each element in the list will be of the form returned by this interface's queryForMap methods.

      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      Returns:
      a List that contains a Map per row
      Throws:
      DataAccessException - if the query fails
      See Also:
    • queryForRowSet

      SqlRowSet queryForRowSet(String sql, SqlParameterSource paramSource) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting an SqlRowSet.

      The results will be mapped to an SqlRowSet which holds the data in a disconnected fashion. This wrapper will translate any SQLExceptions thrown.

      Note that, for the default implementation, JDBC RowSet support needs to be available at runtime: by default, Sun's com.sun.rowset.CachedRowSetImpl class is used, which is part of JDK 1.5+ and also available separately as part of Sun's JDBC RowSet Implementations download (rowset.jar).

      Parameters:
      sql - the SQL query to execute
      paramSource - container of arguments to bind to the query
      Returns:
      an SqlRowSet representation (possibly a wrapper around a javax.sql.rowset.CachedRowSet)
      Throws:
      DataAccessException - if there is any problem executing the query
      See Also:
    • queryForRowSet

      SqlRowSet queryForRowSet(String sql, Map<String,?> paramMap) throws DataAccessException
      Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, expecting an SqlRowSet.

      The results will be mapped to an SqlRowSet which holds the data in a disconnected fashion. This wrapper will translate any SQLExceptions thrown.

      Note that, for the default implementation, JDBC RowSet support needs to be available at runtime: by default, Sun's com.sun.rowset.CachedRowSetImpl class is used, which is part of JDK 1.5+ and also available separately as part of Sun's JDBC RowSet Implementations download (rowset.jar).

      Parameters:
      sql - the SQL query to execute
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      Returns:
      an SqlRowSet representation (possibly a wrapper around a javax.sql.rowset.CachedRowSet)
      Throws:
      DataAccessException - if there is any problem executing the query
      See Also:
    • update

      int update(String sql, SqlParameterSource paramSource) throws DataAccessException
      Issue an update via a prepared statement, binding the given arguments.
      Parameters:
      sql - the SQL containing named parameters
      paramSource - container of arguments and SQL types to bind to the query
      Returns:
      the number of rows affected
      Throws:
      DataAccessException - if there is any problem issuing the update
    • update

      int update(String sql, Map<String,?> paramMap) throws DataAccessException
      Issue an update via a prepared statement, binding the given arguments.
      Parameters:
      sql - the SQL containing named parameters
      paramMap - map of parameters to bind to the query (leaving it to the PreparedStatement to guess the corresponding SQL type)
      Returns:
      the number of rows affected
      Throws:
      DataAccessException - if there is any problem issuing the update
    • update

      int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder) throws DataAccessException
      Issue an update via a prepared statement, binding the given arguments, returning generated keys.
      Parameters:
      sql - the SQL containing named parameters
      paramSource - container of arguments and SQL types to bind to the query
      generatedKeyHolder - a KeyHolder that will hold the generated keys
      Returns:
      the number of rows affected
      Throws:
      DataAccessException - if there is any problem issuing the update
      See Also:
    • update

      int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames) throws DataAccessException
      Issue an update via a prepared statement, binding the given arguments, returning generated keys.
      Parameters:
      sql - the SQL containing named parameters
      paramSource - container of arguments and SQL types to bind to the query
      generatedKeyHolder - a KeyHolder that will hold the generated keys
      keyColumnNames - names of the columns that will have keys generated for them
      Returns:
      the number of rows affected
      Throws:
      DataAccessException - if there is any problem issuing the update
      See Also:
    • batchUpdate

      int[] batchUpdate(String sql, Map<String,?>[] batchValues)
      Executes a batch using the supplied SQL statement with the batch of supplied arguments.
      Parameters:
      sql - the SQL statement to execute
      batchValues - the array of Maps containing the batch of arguments for the query
      Returns:
      an array containing the numbers of rows affected by each update in the batch (may also contain special JDBC-defined negative values for affected rows such as Statement.SUCCESS_NO_INFO/Statement.EXECUTE_FAILED)
      Throws:
      DataAccessException - if there is any problem issuing the update
    • batchUpdate

      int[] batchUpdate(String sql, SqlParameterSource[] batchArgs)
      Execute a batch using the supplied SQL statement with the batch of supplied arguments.
      Parameters:
      sql - the SQL statement to execute
      batchArgs - the array of SqlParameterSource containing the batch of arguments for the query
      Returns:
      an array containing the numbers of rows affected by each update in the batch (may also contain special JDBC-defined negative values for affected rows such as Statement.SUCCESS_NO_INFO/Statement.EXECUTE_FAILED)
      Throws:
      DataAccessException - if there is any problem issuing the update