Class DatabaseRow


  • @CheckReturnValue
    public class DatabaseRow
    extends Object
    Retrieves column values for a single row returned by a query, if necessary, calculating the column position and doing necessary conversion. DatabaseRow serves as an encapsulation of a ResultSet for a single row, with the additional support for converting Instants, ZonedDateTimes OffsetDateTimes, LocalDates, UUIDs, and Enums. getColumnIndex(String) supports joins for most database drivers by reading column names from ResultSetMetaData. table(String) and table(DatabaseTableAlias) returns a DatabaseRow where all offsets are relative to the specified table. Example usage:
     DatabaseTable organizations = new DatabaseTableImpl("organizations");
     DatabaseTable persons = new DatabaseTableImpl("persons");
     DatabaseTable memberships = new DatabaseTableImpl("memberships");
    
     DatabaseTableAlias m = memberships.alias("m");
     DatabaseTableAlias p = persons.alias("p");
     DatabaseTableAlias o = organizations.alias("o");
    
     List<Member< result = m.join(m.column("person_id"), p.column("id"))
             .join(m.column("organization_id"), o.column("id"))
             .list(connection, row ->s {
                 Member member = new Member();
                 member.setName(row.table(p).getString("name"));
                 member.setBirthDate(row.table(p).getLocalDate("birthdate"));
                 member.setOrganizationName(row.table(o).getString("name"));
                 member.setStatus(row.table(m).getEnum(MembershipStatus.class, "name"));
                 return person;
             }