org.springframework.jdbc.support

Interface KeyHolder

  • All Known Implementing Classes:
    GeneratedKeyHolder


    public interface KeyHolder
    Interface for retrieving keys, typically used for auto-generated keys as potentially returned by JDBC insert statements.

    Implementations of this interface can hold any number of keys. In the general case, the keys are returned as a List containing one Map for each row of keys.

    Most applications only use on key per row and process only one row at a time in an insert statement. In these cases, just call getKey to retrieve the key. The returned value is a Number here, which is the usual type for auto-generated keys.

    Since:
    1.1
    Author:
    Thomas Risberg, Juergen Hoeller
    See Also:
    JdbcTemplate, SqlUpdate
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method and Description
      java.lang.Number getKey()
      Retrieve the first item from the first map, assuming that there is just one item and just one map, and that the item is a number.
      java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getKeyList()
      Return a reference to the List that contains the keys.
      java.util.Map<java.lang.String,java.lang.Object> getKeys()
      Retrieve the first map of keys.
    • Method Detail

      • getKey

        @Nullable
        java.lang.Number getKey()
                                   throws InvalidDataAccessApiUsageException
        Retrieve the first item from the first map, assuming that there is just one item and just one map, and that the item is a number. This is the typical case: a single, numeric generated key.

        Keys are held in a List of Maps, where each item in the list represents the keys for each row. If there are multiple columns, then the Map will have multiple entries as well. If this method encounters multiple entries in either the map or the list meaning that multiple keys were returned, then an InvalidDataAccessApiUsageException is thrown.

        Returns:
        the generated key as a number
        Throws:
        InvalidDataAccessApiUsageException - if multiple keys are encountered
      • getKeys

        @Nullable
        java.util.Map<java.lang.String,java.lang.Object> getKeys()
                                                                    throws InvalidDataAccessApiUsageException
        Retrieve the first map of keys.

        If there are multiple entries in the list (meaning that multiple rows had keys returned), then an InvalidDataAccessApiUsageException is thrown.

        Returns:
        the Map of generated keys for a single row
        Throws:
        InvalidDataAccessApiUsageException - if keys for multiple rows are encountered
      • getKeyList

        java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getKeyList()
        Return a reference to the List that contains the keys.

        Can be used for extracting keys for multiple rows (an unusual case), and also for adding new maps of keys.

        Returns:
        the List for the generated keys, with each entry representing an individual row through a Map of column names and key values