我正在尝试使用包含查询结果的分页来实现数据库分页解决方案(仅需要转发CachedRowSet
)AS400JDBCResultSet
。
我试过使用
CachedRowSet cachedRowSet = new CachedRowSetImpl();
cachedRowSet.setMaxRows(10);
cachedRowSet.setPageSize(10);
cachedRowSet.populate(resultSet);
方法,但在第一页(即通过调用)返回完整的结果集(65 条记录cachedRowSet.next()
)。我也试过
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);
方法,但我在execute()
调用时抛出以下异常
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)
我已经尝试过 IBM 和 Sun JRE。
有任何想法吗?我的 JDBC 驱动程序是否完全不支持此功能?
更新: MySQL驱动程序也会发生 - 所以我一定做错了什么,对吧?
更新(2):让它在 Java 5.0 和 6.0 上运行 MySql's Driver
,但只在我的 6.0 上运行AS400JDBCDriver
- 两者都使用上面的方法 2。在任何情况下似乎都很慢。