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에 시도한 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)
에 던져 다음과 같은 예외를 얻을.
아이디어가 있으십니까? 이 기능은 JDBC 드라이버가 지원하지 않는가?
업데이트 : 또한 MySQL 드라이버에서 발생합니다. 그래서 다른 잘못된 작업을해야합니다. 맞습니까?
업데이트 (2) : 유무는 MySQL의의 Driver
자바 5.0 & 6.0에서 작동하는 그것을 가지고,하지만 내 AS400JDBCDriver
만에 6.0 - 위의 방법 2를 모두 사용. 어쨌든 아주 느린 것 같습니다.
와 함께 작동, 그래서 이것이 문제가되지 않습니다 상상 것입니다. 또한 6.0 JRE 및 동일한 드라이버로 작업 할 수있었습니다. 고마워요 :) –