sql = " SELECT * "+
" FROM (SELECT Row_Number() OVER (ORDER BY empno) AS RowId, * "+
" FROM emp) U " +
" WHERE U.RowId BETWEEN ? AND ? ";
ps = conn.prepareStatement(sql);
ps.setInt(1,currentPage*lineSize);
ps.setInt(2,(currentPage-1)*lineSize);
//ps.setInt(2,currentPage*lineSize);
rs = ps.executeQuery();
" FROM (SELECT Row_Number() OVER (ORDER BY empno) AS RowId, * "+
" FROM emp) U " +
" WHERE U.RowId BETWEEN ? AND ? ";
ps = conn.prepareStatement(sql);
ps.setInt(1,currentPage*lineSize);
ps.setInt(2,(currentPage-1)*lineSize);
//ps.setInt(2,currentPage*lineSize);
rs = ps.executeQuery();
是下面的语句有问题,正确的写法应该是:
<%
while(rs.next()){
int empno = rs.getInt(1);
String ename = rs.getString(2);
String job = rs.getString(3);
String hiredate = rs.getString(4); //注意此处不能用,Date hiredate = rs.getDate(4);
String sal = rs.getString(5); //注意此处不能用,Double sal = rs.getDouble(5);一定要记住!
%>但还是给热心的朋友送分,谢谢!
假设每页表示20条数据
因为RowId从1开始
第一页:RowId=1~RowId=20 (RowId BETWEEN 1 AND 20)
第二页:RowId=21~RowId=40 (RowId BETWEEN 21 AND 40)
......currentPage是从几开始的啊?
如果是从0开始的话( 0,1,2,3,4。)
ps.setInt(1,currentPage*lineSize + 1 );
ps.setInt(2,(currentPage+1)*lineSize);