Каким бы ни был дизайн, вам придется перебирать ResultSet. Не переоценивайте, что вам нужно, это что-то вроде этого:
while (rs.next()) {
SomeObject o = extractDataFromResultSet(rs);
process(o);
}
Метод процесса может делать то, что ему нужно: выполнять работу, вызывать взаимодействующие объекты и т. Д.