code: public <T> T executeSelect(Connection conn, DataObject object, ResultSetWorker<T> worker) throws Exception {
          PreparedStatement statement = conn.prepareStatement(_sql);
          try {
              load(statement, object);
              return worker.process(statement.executeQuery());
          } finally {
              statement.close();
          }
      }
docs: Executes the SELECT statement, passing the result set to the ResultSetWorker for processing.
  
  The ResultSetWorker must close the result set before returning.