Oracle用rownum实现游标:
String finalSql="select * from (select rownum as my_rownum,table_a.* from("
+nowPageSql+") table_a where rownum<="+endNum+") where my_rownum>"+startNum;
部分代码:
String finalSql="select * from (select rownum as my_rownum,table_a.* from("
+nowPageSql+") table_a where rownum<="+endNum+") where my_rownum>"+startNum;
rs = stmt.executeQuery(finalSql);
ResultSetMetaData rsmd = rs.getMetaData();
int nowColumn = rsmd.getColumnCount();
this.setRowNum(nowColumn);
int r = 1;
while (rs.next())
{
for (int i=0;i<nowColumn;i++)
{
String temp = rs.getString(i+1);
if(temp == null)
{
temp = "";
}
returnArr.add(temp);
}
}
stmt.close();
return returnArr;
mySql用limit实现指定行查询:
String finalSql = nowPageSql + " limit " + startNum + "," + (endNum-startNum);
部分代码:
String finalSql = nowPageSql + " limit " + startNum + "," + (endNum-startNum);
rs = stmt.executeQuery(finalSql);
ResultSetMetaData rsmd = rs.getMetaData();
int nowColumn = rsmd.getColumnCount();
this.setRowNum(nowColumn);
int r = 1;
while (rs.next())
{
for (int i=0;i<nowColumn;i++)
{
String temp = rs.getString(i+1);
if(temp == null)
{
temp = "";
}
returnArr.add(temp);
}
}
stmt.close();
return returnArr;
Sybase用方法: rs.absolute(startNum+1);
部分代码:
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(nowPageSql);
ResultSetMetaData rsmd = rs.getMetaData();
int nowColumn = rsmd.getColumnCount();
this.setRowNum(nowColumn);
int r = 1;
while (rs.next())
{
if (r == 1)
rs.absolute(startNum+1);
for (int i=0;i<nowColumn;i++)
{
String temp = rs.getString(i+1);
if(temp == null)
{
temp = "";
}
returnArr.add(temp);
}
if (r++ >= pageNum)
break;
}
stmt.close();
return returnArr;

本文介绍了在Oracle、MySQL和Sybase等不同数据库中实现分页查询的方法,包括使用ROWNUM、LIMIT关键字及结果集定位来获取指定范围的数据记录。
6634

被折叠的 条评论
为什么被折叠?



