## org.springframework.jdbc.support.incrementer
Class AbstractSequenceMaxValueIncrementer

    java.lang.Object
      org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
          org.springframework.jdbc.support.incrementer.AbstractSequenceMaxValueIncrementer

All Implemented Interfaces:
  InitializingBean, DataFieldMaxValueIncrementer

Direct Known Subclasses:
  DB2MainframeSequenceMaxValueIncrementer, DB2SequenceMaxValueIncrementer, H2SequenceMaxValueIncrementer, HsqlSequenceMaxValueIncrementer, OracleSequenceMaxValueIncrementer, PostgreSQLSequenceMaxValueIncrementer

    public abstract class AbstractSequenceMaxValueIncrementer

extends AbstractDataFieldMaxValueIncrementer

Abstract base class for `DataFieldMaxValueIncrementer` implementations that use a database sequence. Subclasses need to provide the database-specific SQL to use.

Since:
  26.02.2004
Author:
  Juergen Hoeller
See Also:
  `getSequenceQuery()`

Field Summary

Fields inherited from class org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
`paddingLength`

Constructor Summary
`AbstractSequenceMaxValueIncrementer()` Default constructor for bean property style usage.
`AbstractSequenceMaxValueIncrementer(DataSource dataSource, String incrementerName)` Convenience constructor.

Method Summary
`protected long` `getNextKey()` Executes the SQL as specified by `getSequenceQuery()`.
`protected abstract String` `getSequenceQuery()` Return the database-specific query to use for retrieving a sequence value.

Methods inherited from class org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer
`afterPropertiesSet, getDataSource, getIncrementerName, getPaddingLength, nextIntValue, nextLongValue, nextStringValue, setDataSource, setIncrementerName, setPaddingLength`

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

Constructor Detail

### AbstractSequenceMaxValueIncrementer

    public AbstractSequenceMaxValueIncrementer()

  Default constructor for bean property style usage.

  See Also:
    `AbstractDataFieldMaxValueIncrementer.setDataSource(javax.sql.DataSource)`, `AbstractDataFieldMaxValueIncrementer.setIncrementerName(java.lang.String)`

### AbstractSequenceMaxValueIncrementer

    public AbstractSequenceMaxValueIncrementer(DataSource dataSource,
                                               String incrementerName)

  Convenience constructor.

  Parameters:
    `dataSource` - the DataSource to use
    `incrementerName` - the name of the sequence/table to use

Method Detail

### getNextKey

    protected long getNextKey()
                       throws DataAccessException

  Executes the SQL as specified by `getSequenceQuery()`.

  Specified by:
    `getNextKey` in class `AbstractDataFieldMaxValueIncrementer`
  Returns:
    the key to use as a long. It will eventually be converted later in another format by the public concrete methods of this class.
  Throws:
    `DataAccessException`

### getSequenceQuery

    protected abstract String getSequenceQuery()

  Return the database-specific query to use for retrieving a sequence value.

  The provided SQL is supposed to result in a single row with a single column that allows for extracting a `long` value.