CachedRowSet
を使用してデータベースページングソリューションを実装しようとしています(私のクエリの結果を含むAS400JDBCResultSet
)。CachedRowSetはすべてのResultSet実装で動作しますか?
(すなわちcachedRowSet.next()
を呼び出すことで)私は
CachedRowSet cachedRowSet = new CachedRowSetImpl();
cachedRowSet.setMaxRows(10);
cachedRowSet.setPageSize(10);
cachedRowSet.populate(resultSet);
アプローチを使用してみましたが、完全な結果セット(65件のレコードが)最初のページに戻ります。私はまた、
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);
アプローチを試みたが、私は両方のIBM &日のJRE上で試してみたコール
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)
にスローされた次の例外を取得します。
アイデア?この機能はJDBCドライバではサポートされていませんか?
アップデート:また、MySQLドライバでも発生します。
アップデート(2):てきたが、MySQLのDriver
用のJava 5.0 & 6.0上で動作するようにそれを得たが、私のAS400JDBCDriver
ための唯一の6.0 - 上から方法2を両方使用します。いずれにしてもかなり遅くなっているようです。
で動作します。また、6.0 JREと同じドライバで動作させることもできました。しかし、ありがとう:) –