class Foo { String bar; String baz;} CallableStatement stmt = connection.prepareCall("{ call ? := GET_FOO() }");stmt.registerOutParameter(1, OracleTypes.CURSOR);stmt.execute();ResultSet rs = (ResultSet)stmt.getObject(1);while (rs.next()) { Foo foo = new Foo(); foo.bar = rs.getString(1); foo.baz = rs.getString(2);}