在做分页程序遇到一个问题
rs = stmt.executeQuery(nowPageSql);
ResultSetMetaData rsmd = rs.getMetaData();
int nowColumn = rsmd.getColumnCount();
int r = 1;
while (rs.next())
{
if (r == 1)
rs.absolute(startNum+1);
Element dataList = doc.createElement("dataList");
dataInfo.appendChild(dataList);
for (int i=0;i<nowColumn;i++)
{
String rltstr = rs.getString(i+1);
if (rltstr!=null){
rltstr = rltstr.trim();
}
dataList.setAttribute(rsmd.getColumnLabel(i+1).toLowerCase(),rltstr);
}
if (r++ >= pageNum)
break;
}
其中的rs.absolute(startNum+1);
如果把stmt = conn.createStatement();则报
java.sql.SQLException: JZ0BT: 类型 TYPE_FORWARD_ONLY 的 ResultSets 不支持 absolute(int) 方法。
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:492)
at com.sybase.jdbc2.jdbc.SybResultSet.checkForScrollability(SybResultSet.java:1643)
at com.sybase.jdbc2.jdbc.SybResultSet.absolute(SybResultSet.java:658)
解决方法,应该初始化
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);