我在用jdbc做一个分页,其中做法是设置每次读取记录数st.setMaxRows(3);然后再用rs.absolute(5)把指针移动到相应的记录读取,可是当设置过st.setMaxRows(3)后,再用rs.absolute(5)就会返回false;而没有设置st.setMaxRows(3)就可以正常使用rs.absolute(5)。
st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);这个已经设过了。
难道这两条语句不能起用吗?那应该如何实现我的功能?请指教谢谢。
st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);这个已经设过了。
难道这两条语句不能起用吗?那应该如何实现我的功能?请指教谢谢。
rs.absolute():意思是在你读出来的记录中从第几条开始,而不是按数据库中的ID来算的.
所以你设置st.setMaxRows(5)应该不会有什么问题了.
再调用st.setMaxRows(3)设置读取记录的最大个数;
再st.setMaxRows(3)设置读取记录的最大个数;
你设置的setMaxRows 是说返回最大记录是3条,但是你用rs.absolute(5),却要取第5条,肯定不能取到,你要保证取回的最大记录数一定要大于或等于rs.absolute(5)的条数
sqlserver 中sql分页方法,oracle和mysql就比较简单了int maxPerPage=6;//每页显示条数
int curRow;//当前页数
String sql = "select top "+ maxPerPage+ " * from yourtable where key not in (select top "+ curRow+ " key from yourtable)";