anchor.diff:  The above SQL select statements now look like this:
   
   --------------------------------------------------------------------------------------------------
  -final List<Person> females = dao.findAll(Person.TRANSFORMER,
  -    PersonTable.TABLE,
  -    PersonTable.GENDER.eq(Gender.FEMALE)
  +public static final ResultTransformer<Person> TRANSFORMER = new ResultTransformer<Person>() {
  +
  +        @Override
  +        public Person apply(final SqlResultRow row) {
  +            return new Person(
  +                row.get(ID),
  +                row.get(FIRST_NAME),
  +                row.get(LAST_NAME),
  +                row.get(AGE),
  +                row.get(GENDER)
  +            );
  +        }
  +};
  +
  +// ... create dao instance ..
  +
  +final List<Person> females = dao.findAll(TRANSFORMER,
  +    TABLE,
  +    GENDER.eq(Gender.FEMALE)
   );
   
  -final List<Person> over18 = dao.findAll(Person.TRANSFORMER, dao.sql()
  -    .select(PersonTable.TABLE.getColumns())
  -    .where(PersonTable.AGE.gt(18))
  -    .orderBy(PersonTable.LAST_NAME, PersonTable.FIRST_NAME)
  +final List<Person> over18 = dao.findAll(TRANSFORMER, dao.sql()
  +    .select(TABLE.getColumns())
  +    .where(AGE.gt(18))
  +    .orderBy(LAST_NAME, FIRST_NAME)
   );
   --------------------------------------------------------------------------------------------------
   
  
positive.code: Building SQL select statements is now very easy, especially if you know
  SQL:
  
  -------------------------------------------------
  // find all female entries
  final SqlCommand<SelectResult> command1 = SQL
      .select(PersonTable.TABLE.getColumns())
      .where(PersonTable.GENDER.eq(Gender.FEMALE));
  
  // find all entries with age greater than 18
  final SqlCommand<SelectResult> command2 = SQL
      .select(PersonTable.TABLE.getColumns())
      .where(PersonTable.AGE.gt(18))
      .orderBy(PersonTable.LAST_NAME, PersonTable.FIRST_NAME);
  
  // find the average age grouped by gender
  final SqlCommand<SelectResult> command3 = SQL
      .select(PersonTable.GENDER, Sql.avg(PersonTable.AGE))
      .groupBy(PersonTable.GENDER);
  ---------------------------------------------------------
  
  Well, while this looks astonishingly easy, there are some more details
  
negative.code: -----------------------------------------------------------------------------------------------------------------
  public class PersonTable {
  
      static final ColumnDef<Long>   ID         = ColumnDefs.long("id");
      static final ColumnDef<String> FIRST_NAME = ColumnDefs.varchar("first_name");
      static final ColumnDef<String> LAST_NAME  = ColumnDefs.varchar("last_name");
      static final ColumnDef<Integer> AGE       = ColumnDefs.integer("age");
      static final ColumnDef<Gender> GENDER     = ColumnDefs.enum("gender", Gender.class);
  
      static final TableDef TABLE = new TableDef("person", FIRST_NAME, LAST_NAME, AGE, GENDER);
  
  }
  -----------------------------------------------------------------------------------------------------------------
  