The Spring Framework

## org.springframework.jdbc.object
Class SqlUpdate

    java.lang.Object
      org.springframework.jdbc.object.RdbmsOperation
          org.springframework.jdbc.object.SqlOperation
              org.springframework.jdbc.object.SqlUpdate

All Implemented Interfaces:
  InitializingBean

Direct Known Subclasses:
  BatchSqlUpdate

    public class SqlUpdate

extends SqlOperation

Reusable operation object representing a SQL update.

This class provides a number of `update` methods, analogous to the `execute` methods of query objects.

This class is concrete. Although it can be subclassed (for example to add a custom update method) it can easily be parameterized by setting SQL and declaring parameters.

Like all `RdbmsOperation` classes that ship with the Spring Framework, `SqlQuery` instances are thread-safe after their initialization is complete. That is, after they are constructed and configured via their setter methods, they can be used safely from multiple threads.

Author:
  Rod Johnson, Thomas Risberg, Juergen Hoeller
See Also:
  `SqlQuery`

Field Summary

Fields inherited from class org.springframework.jdbc.object.RdbmsOperation
`logger`

Constructor Summary
`SqlUpdate()` Constructor to allow use as a JavaBean.
`SqlUpdate(DataSource ds, String sql)` Constructs an update object with a given DataSource and SQL.
`SqlUpdate(DataSource ds, String sql, int[] types)` Construct an update object with a given DataSource, SQL and anonymous parameters.
`SqlUpdate(DataSource ds, String sql, int[] types, int maxRowsAffected)` Construct an update object with a given DataSource, SQL, anonymous parameters and specifying the maximum number of rows that may be affected.

Method Summary
`protected void` `checkRowsAffected(int rowsAffected)` Check the given number of affected rows against the specified maximum number or required number.
`void` `setMaxRowsAffected(int maxRowsAffected)` Set the maximum number of rows that may be affected by this update.
`void` `setRequiredRowsAffected(int requiredRowsAffected)` Set the exact number of rows that must be affected by this update.
`int` `update()` Convenience method to execute an update with no parameters.
`int` `update(int p1)` Convenient method to execute an update given one int arg.
`int` `update(int p1, int p2)` Convenient method to execute an update given two int args.
`int` `update(long p1)` Convenient method to execute an update given one long arg.
`int` `update(long p1, long p2)` Convenient method to execute an update given two long args.
`int` `update(Object[] params)` Generic method to execute the update given parameters.
`int` `update(Object[] params, KeyHolder generatedKeyHolder)` Method to execute the update given arguments and retrieve the generated keys using a KeyHolder.
`int` `update(String p)` Convenient method to execute an update given one String arg.
`int` `update(String p1, String p2)` Convenient method to execute an update given two String args.
`int` `updateByNamedParam(Map paramMap)` Generic method to execute the update given named parameters.
`int` `updateByNamedParam(Map paramMap, KeyHolder generatedKeyHolder)` Method to execute the update given arguments and retrieve the generated keys using a KeyHolder.

Methods inherited from class org.springframework.jdbc.object.SqlOperation
`compileInternal, getParsedSql, newPreparedStatementCreator, newPreparedStatementCreator, newPreparedStatementSetter, onCompileInternal`

Methods inherited from class org.springframework.jdbc.object.RdbmsOperation

`afterPropertiesSet, allowsUnusedParameters, checkCompiled, compile, declareParameter, getDeclaredParameters, getGeneratedKeysColumnNames, getJdbcTemplate, getResultSetType, getSql, isCompiled, isReturnGeneratedKeys, isUpdatableResults, setDataSource, setFetchSize, setGeneratedKeysColumnNames, setJdbcTemplate, setMaxRows, setParameters, setQueryTimeout, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, supportsLobParameters, validateNamedParameters, validateParameters`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SqlUpdate

    public SqlUpdate()

  Constructor to allow use as a JavaBean. DataSource and SQL must be supplied before compilation and use.

  See Also:
    `RdbmsOperation.setDataSource(javax.sql.DataSource)`, `RdbmsOperation.setSql(java.lang.String)`

### SqlUpdate

    public SqlUpdate(DataSource ds,
                     String sql)

  Constructs an update object with a given DataSource and SQL.

  Parameters:
    `ds` - DataSource to use to obtain connections
    `sql` - SQL statement to execute

### SqlUpdate

    public SqlUpdate(DataSource ds,
                     String sql,
                     int[] types)

  Construct an update object with a given DataSource, SQL and anonymous parameters.

  Parameters:
    `ds` - DataSource to use to obtain connections
    `sql` - SQL statement to execute
    `types` - SQL types of the parameters, as defined in the `java.sql.Types` class
  See Also:
    `Types`

### SqlUpdate

    public SqlUpdate(DataSource ds,
                     String sql,
                     int[] types,
                     int maxRowsAffected)

  Construct an update object with a given DataSource, SQL, anonymous parameters and specifying the maximum number of rows that may be affected.

  Parameters:
    `ds` - DataSource to use to obtain connections
    `sql` - SQL statement to execute
    `types` - SQL types of the parameters, as defined in the `java.sql.Types` class
    `maxRowsAffected` - the maximum number of rows that may be affected by the update
  See Also:
    `Types`

Method Detail

### setMaxRowsAffected

    public void setMaxRowsAffected(int maxRowsAffected)

  Set the maximum number of rows that may be affected by this update. The default value is 0, which does not limit the number of rows affected.

  Parameters:
    `maxRowsAffected` - the maximum number of rows that can be affected by this update without this class's update method considering it an error

### setRequiredRowsAffected

    public void setRequiredRowsAffected(int requiredRowsAffected)

  Set the exact number of rows that must be affected by this update. The default value is 0, which allows any number of rows to be affected.

  This is an alternative to setting the maximum number of rows that may be affected.

  Parameters:
    `requiredRowsAffected` - the exact number of rows that must be affected by this update without this class's update method considering it an error

### checkRowsAffected

    protected void checkRowsAffected(int rowsAffected)
                              throws JdbcUpdateAffectedIncorrectNumberOfRowsException

  Check the given number of affected rows against the specified maximum number or required number.

  Parameters:
    `rowsAffected` - the number of affected rows
  Throws:
    `JdbcUpdateAffectedIncorrectNumberOfRowsException` - if the actually affected rows are out of bounds
  See Also:
    `setMaxRowsAffected(int)`, `setRequiredRowsAffected(int)`

### update

    public int update(Object[] params)
               throws DataAccessException

  Generic method to execute the update given parameters. All other update methods invoke this method.

  Parameters:
    `params` - array of parameters objects
  Returns:
    the number of rows affected by the update
  Throws:
    `DataAccessException`

### update

    public int update(Object[] params,
                      KeyHolder generatedKeyHolder)
               throws DataAccessException

  Method to execute the update given arguments and retrieve the generated keys using a KeyHolder.

  Parameters:
    `params` - array of parameter objects
    `generatedKeyHolder` - KeyHolder that will hold the generated keys
  Returns:
    the number of rows affected by the update
  Throws:
    `DataAccessException`

### update

    public int update()
               throws DataAccessException

  Convenience method to execute an update with no parameters.

  Throws:
    `DataAccessException`

### update

    public int update(int p1)
               throws DataAccessException

  Convenient method to execute an update given one int arg.

  Throws:
    `DataAccessException`

### update

    public int update(int p1,
                      int p2)
               throws DataAccessException

  Convenient method to execute an update given two int args.

  Throws:
    `DataAccessException`

### update

    public int update(long p1)
               throws DataAccessException

  Convenient method to execute an update given one long arg.

  Throws:
    `DataAccessException`

### update

    public int update(long p1,
                      long p2)
               throws DataAccessException

  Convenient method to execute an update given two long args.

  Throws:
    `DataAccessException`

### update

    public int update(String p)
               throws DataAccessException

  Convenient method to execute an update given one String arg.

  Throws:
    `DataAccessException`

### update

    public int update(String p1,
                      String p2)
               throws DataAccessException

  Convenient method to execute an update given two String args.

  Throws:
    `DataAccessException`

### updateByNamedParam

    public int updateByNamedParam(Map paramMap)
                           throws DataAccessException

  Generic method to execute the update given named parameters. All other update methods invoke this method.

  Parameters:
    `paramMap` - Map of parameter name to parameter object, matching named parameters specified in the SQL statement
  Returns:
    the number of rows affected by the update
  Throws:
    `DataAccessException`

### updateByNamedParam

    public int updateByNamedParam(Map paramMap,
                                  KeyHolder generatedKeyHolder)
                           throws DataAccessException

  Method to execute the update given arguments and retrieve the generated keys using a KeyHolder.

  Parameters:
    `paramMap` - Map of parameter name to parameter object, matching named parameters specified in the SQL statement
    `generatedKeyHolder` - KeyHolder that will hold the generated keys
  Returns:
    the number of rows affected by the update
  Throws:
    `DataAccessException`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.