/* * Result cursors are bidirectional. You can use hasNext, next, * hasPrevious, previous, isFirst, first, isLast, last, isBeforeFirst, * beforeFirst, isAfterLast, afterLast. You can also use Iterator and * ListIterator. */ static void movingBackAndForth(Database db) throws DatabaseException { Result<Order> result = db.queryObject(Order.class); while (result.hasNext()) System.out.println(result.next()); while (result.hasPrevious()) System.out.println(result.previous()); result.last(); System.out.println(); System.out.println(result.current()); while (result.hasPrevious()) System.out.println(result.previous()); System.out.println(); result = db.queryObject(Order.class); ListIterator it; for (it = result.listIterator(); it.hasNext(); ) System.out.println(it.next()); for (; it.hasPrevious(); ) System.out.println(it.previous()); }
/* * If your result set concurrency is ResultSet.CONCUR_UPDATABLE, * you can update rows in the result on the fly. */ static void updateRow(Database db) throws DatabaseException { // The following two method calls depend on the database being used, they may be optional db.setResultSetConcurrency(ResultSet.CONCUR_UPDATABLE); db.setResultSetType(ResultSet.TYPE_SCROLL_SENSITIVE); Result<Customer> result = db.queryObject(Customer.class, "where customer_id = ?", "ssmith"); for (Customer c : result) { result.setColumnValue("company_name", "ACBProducts"); result.updateRow(); } }
/* * Result is a ListIterator and Iterable. */ static void iteratingResults(Database db) throws DatabaseException { Result<Customer> result = db.queryObject(Customer.class, "where customer_id = ?", "ssmith"); for (Customer c : result) System.out.println(c); result = db.queryObject(Customer.class); while (result.hasNext()) System.out.println(result.next()); result = db.queryObject(Customer.class); for (Iterator it = result.iterator(); it.hasNext(); ) System.out.println(it.next()); }