Class ColumnNameResultSetReader

java.lang.Object
io.micronaut.data.jdbc.mapper.ColumnNameResultSetReader
All Implemented Interfaces:
ResultReader<ResultSet, String>

public final class ColumnNameResultSetReader extends Object implements ResultReader<ResultSet, String>
A ResultReader for JDBC that uses the column name.
Since:
1.0.0
Author:
graemerocher
  • Constructor Details

    • ColumnNameResultSetReader

      public ColumnNameResultSetReader()
    • ColumnNameResultSetReader

      public ColumnNameResultSetReader(@Nullable DataConversionService conversionService)
      Constructs a new instance.
      Parameters:
      conversionService - The data conversion service
      Since:
      3.1
  • Method Details

    • getConversionService

      public io.micronaut.core.convert.ConversionService getConversionService()
      Description copied from interface: ResultReader
      Get conversion service.
      Specified by:
      getConversionService in interface ResultReader<ResultSet, String>
      Returns:
      the instance of ConversionService
    • findColumnIndex

      public int findColumnIndex(ResultSet resultSet, String columnName)
      Resolves the ordinal of the column with the given name in the result set, so that callers can cache it and read the values of subsequent rows by index using ResultReader.getColumnIndexReader() instead of resolving the column name for every row.

      The returned ordinal is only valid for the given result set and uses the index convention of the underlying driver (for example 1-based for JDBC). Readers that cannot resolve column ordinals return -1, in which case callers must keep reading by name.

      A failure to resolve the ordinal is not reported here: the caller falls back to reading the column by name, and a failure that is not a missing column, such as a closed result set, surfaces from that read with the message of the underlying driver rather than being swallowed.

      Specified by:
      findColumnIndex in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      columnName - The column name
      Returns:
      The column index or -1 if the column cannot be resolved
    • getColumnIndexReader

      public ResultReader<ResultSet, Integer> getColumnIndexReader()
      Description copied from interface: ResultReader
      The reader capable of reading values by the ordinals resolved by ResultReader.findColumnIndex(Object, String).
      Specified by:
      getColumnIndexReader in interface ResultReader<ResultSet, String>
      Returns:
      The column index reader or null if reading by column index is not supported
    • readDynamic

      public @Nullable Object readDynamic(ResultSet resultSet, String index, DataType dataType)
      Description copied from interface: ResultReader
      Read a value dynamically using the result set and the given name and data type.
      Specified by:
      readDynamic in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      index - The name
      dataType - The data type
      Returns:
      The value, can be null
    • next

      public boolean next(ResultSet resultSet)
      Description copied from interface: ResultReader
      Move the index to the next result if possible.
      Specified by:
      next in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      Returns:
      The next result
    • convertRequired

      public <T> T convertRequired(Object value, Class<T> type)
      Description copied from interface: ResultReader
      Convert the value to the given type.
      Specified by:
      convertRequired in interface ResultReader<ResultSet, String>
      Type Parameters:
      T - The generic type
      Parameters:
      value - The value
      type - The type
      Returns:
      The converted value
    • readTimestamp

      public @Nullable Date readTimestamp(ResultSet resultSet, String index)
      Description copied from interface: ResultReader
      Read a timestamp value for the given index.
      Specified by:
      readTimestamp in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      index - The index (such as the column name)
      Returns:
      The char value
    • readTime

      public @Nullable Time readTime(ResultSet resultSet, String index)
      Description copied from interface: ResultReader
      Read a time value for the given index.
      Specified by:
      readTime in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      index - The index (such as the column name)
      Returns:
      The char value
    • readLong

      public long readLong(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a long value for the given name.
      Specified by:
      readLong in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The long value
    • readChar

      public char readChar(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a char value for the given name.
      Specified by:
      readChar in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The char value
    • readDate

      public @Nullable Date readDate(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a date value for the given name.
      Specified by:
      readDate in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The char value
    • readString

      public @Nullable String readString(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a string value for the given name.
      Specified by:
      readString in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The string value
    • readInt

      public int readInt(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read an int value for the given name.
      Specified by:
      readInt in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The int value
    • readBoolean

      public boolean readBoolean(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a boolean value for the given name.
      Specified by:
      readBoolean in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The boolean value
    • readFloat

      public float readFloat(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a float value for the given name.
      Specified by:
      readFloat in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The float value
    • readByte

      public byte readByte(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a byte value for the given name.
      Specified by:
      readByte in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The byte value
    • readShort

      public short readShort(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a short value for the given name.
      Specified by:
      readShort in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The short value
    • readDouble

      public double readDouble(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a double value for the given name.
      Specified by:
      readDouble in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The double value
    • readBigDecimal

      public @Nullable BigDecimal readBigDecimal(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a BigDecimal value for the given name.
      Specified by:
      readBigDecimal in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The BigDecimal value
    • readBytes

      public byte[] readBytes(ResultSet resultSet, String name)
      Description copied from interface: ResultReader
      Read a byte[] value for the given name.
      Specified by:
      readBytes in interface ResultReader<ResultSet, String>
      Parameters:
      resultSet - The result set
      name - The name (such as the column name)
      Returns:
      The byte[] value
    • getRequiredValue

      public <T> @Nullable T getRequiredValue(ResultSet resultSet, String name, Class<T> type) throws DataAccessException
      Description copied from interface: ResultReader
      Get a value from the given result set for the given name and type.
      Specified by:
      getRequiredValue in interface ResultReader<ResultSet, String>
      Type Parameters:
      T - The generic type
      Parameters:
      resultSet - The result set
      name - The name
      type - The type
      Returns:
      The value
      Throws:
      DataAccessException - if the value cannot be read