我正在尝试使用
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和;孙杰。
有什么想法吗?我的JDBC驱动程序不支持这个功能吗?
更新:
MySQL驱动程序也会发生这种情况——所以我肯定是做错了什么,对吧?
更新(2):
已在Java 5.0上运行;MySql的6.0
Driver
,但仅适用于我的
AS400JDBCDriver
-两者都使用上述方法2。在任何情况下似乎都很慢。