Ich versuche, eine Datenbank-Paging-Lösung (Forward nur erforderlich) zu implementieren mit einer CachedRowSet
, um eine AS400JDBCResultSet
mit den Ergebnissen meiner Abfrage zu pagen.Funktioniert CachedRowSet mit allen ResultSet-Implementierungen?
Ich habe versucht, den
CachedRowSet cachedRowSet = new CachedRowSetImpl();
cachedRowSet.setMaxRows(10);
cachedRowSet.setPageSize(10);
cachedRowSet.populate(resultSet);
Ansatz, aber die volle Ergebnismenge (65 Datensätze) in der ersten Seite zurück (das heißt durch cachedRowSet.next()
Aufruf). Ich habe auch versucht, die
CachedRowSet cachedRowSet = new CachedRowSetImpl();
cachedRowSet.setPageSize(10);
cachedRowSet.setMaxRows(0);
cachedRowSet.setUsername("username");
cachedRowSet.setPassword("password");
cachedRowSet.setUrl("jdbc:as400://dev;naming=system;libraries=*LIBL;prompt=false;");
cachedRowSet.setCommand(query);
cachedRowSet.execute(connection);
Ansatz, aber ich bekomme die folgende Ausnahme auf den Anruf execute()
geworfen
Exception in thread "main" java.lang.AbstractMethodError: java/sql/DatabaseMetaData.locatorsUpdateCopy()Z
at com.sun.rowset.CachedRowSetImpl.initMetaData(CachedRowSetImpl.java:712)
at com.sun.rowset.CachedRowSetImpl.populate(CachedRowSetImpl.java:617)
at com.sun.rowset.internal.CachedRowSetReader.readData(CachedRowSetReader.java:190)
at com.sun.rowset.CachedRowSetImpl.execute(CachedRowSetImpl.java:756)
ich auf beiden IBM & Sun JREs ausprobiert habe.
Irgendwelche Ideen? Wird diese Funktionalität von meinem JDBC-Treiber einfach nicht unterstützt?
Update: Auch passiert mit MySQL-Treiber - also muss ich etwas anderes falsch machen, oder?
Update (2): haben es auf Java 5.0 & 6.0 für MySQLs Driver
zu arbeiten, aber nur auf 6,0 für meine AS400JDBCDriver
- beide Verfahren unter Verwendung von 2 von oben. Scheint auf jeden Fall ziemlich langsam zu sein.
Das Glas der Fahrer hat eine Klasse AS400JDBCRowSet enthält, so dass ich mich vorstellen, dies ist nicht das Problem. Außerdem haben wir es geschafft, es mit einem 6.0 JRE & dem gleichen Treiber zu arbeiten. Danke aber :) –