使用JdbcTemp查询少了一条记录

11-01-07 freesea1
在JdbcTemp中

public List queryMultiObject(Collection queryParams, String sqlquery, int start, int count) throws Exception {
		Debug.logVerbose("[JdonFramework]--> enter queryMultiObject from:" + start + " size:" + count, module);
		Connection c = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		List items = new ArrayList(count);
		try {
			c = dataSource.getConnection();
			DbUtil.testConnection(c);
			ps = c.prepareStatement(sqlquery, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
			Debug.logVerbose(sqlquery, module);
			jdbcUtil.setQueryParams(queryParams, ps);
			rs = ps.executeQuery();
			if (DbUtil.supportsFetchSize)
				rs.setFetchSize(count);
			if (start >= 0 && rs.absolute(start + 1)) {//这里是不是有问题
				do {
					items = jdbcUtil.extract(rs);
				} while ((rs.next()) && (--count > 0));
			}
		} catch (SQLException se) {
			throw new Exception("SQLException: " + se.getMessage());
		} catch (Exception ex) {
			Debug.logError(ex, module);
			throw new Exception(ex);
		} finally {
			if (rs != null)
				rs.close();
			if (ps != null)
				ps.close();
			if (c != null)
				c.close();
		}
		return items;
	}
<p>

数据表中本来有6条记录,每次查询都是5条

这个要去除rs.absolute(start + 1)才正确

banq
2011-01-08 11:52
暂时没有发现这个问题,这是自动翻页的,每页5个,超过5个翻到下一页去,这里返回是当前页面的结果。

freesea1
2011-01-08 14:48
2011年01月08日 11:52 "banq"的内容

顶一下

暂时没有发现这个问题,这是自动翻页的,每页5个,超过5个翻到下一页去,这里返回是当前页面的结果。 ...

我这里是有7条记录就显示6条,有9条记录就显示8条,以此类推。。。

banq
2011-01-08 19:45
可能是使用上问题,JF这个案例很正常:http://www.jdon.com/testWeb/

猜你喜欢