我正在处理来自Facebook的分批信息。我已经决定,达到我想要的结果的最好方法是有两个循环,而这两个循环都是关于我的结果集是否有.next() .。
问题是ResultSets没有hasNext()方法,只有next()。因此,在第一个.next()方法使用.previous()之后,我尝试返回,并得到了一个“不支持的特性”错误。
所以我在第二个.next()之后又试了一次,上面写着同样的话.
您似乎不能在.previous()下使用UCanAccess。
例外是-
net.ucanaccess.jdbc.UcanaccessSQLException: feature not supported
at net.ucanaccess.jdbc.UcanaccessResultSet.previous(UcanaccessResultSet.java:933)代码部分-
int i = 1;
try {
idsLoop:while(rs.next()){
if(i==1){
rs.previous();
}
if(i<50){
idsForRequest.add(rs.getString("Expr1"));
i++;
}
else{
i=1;
break idsLoop;
}顺便说一句,如果有人想知道我为什么要这样做,那是因为我不想一次批超过50页。
发布于 2015-07-28 16:52:11
JDBC语句对象默认为ResultSet.TYPE_FORWARD_ONLY下的JDBC (如果不是全部的话,大多数JDBC驱动程序),所以如果您执行类似的操作,rs.previous()将失败。
try (Statement st = conn.createStatement()) {
try (ResultSet rs = st.executeQuery(sql)) {
// ...
rs.previous(); // <- error但是,如果在创建语句对象时指定了一个可滚动的ResultSet .
try (Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)) {
try (ResultSet rs = st.executeQuery(sql)) {
// ...
rs.previous(); // <- no error..。那么rs.previous()就能工作了。
https://stackoverflow.com/questions/31681200
复制相似问题