现在做一个小系统:要实现的功能是可以认为控制从哪一条记录读取,也就是说在我的代码中能怎样设置一个变量来控制读取记录的位置。比如,从第五条开始读,一直读到最后,并显示在页面中。先晒晒我的代码:<html>
<head>
<title>学生信息</title>
<script type="text/javascript">
window.setInterval(function(){
 document.location.reload();
 },3000);
</script>
</head><body><%!  
   String  id="";
   String  name="";
%><%
   //此部分为连接数据库代码   Statement stmt=conn.createStatement();
   ResultSet rs=stmt.executeQuery( "select * from t1" ); 
%>   
 <table width="700" border="1" align="left" cellpadding="1" cellspacing="1">
    <tr>
      <td>
  <span>学号</span>
  </td>      <td>
  <span>姓名</span>
  </td>
    </tr>
<%
   while(rs.next()){  %>
      
      <tr>
      <td><span><%=rs.getString("id")%></span></td>
      <td><span><%=rs.getString("name")%></span></td>
      </tr>
<%}%></table>
</body>
</html> 
  
以上代码能显示的功能是:从第一条一直输出到数据库的最后一条。而我想实现的功能却是:从第n条记录开始输出,一直到最后。也就是说,能不能设置一个变量来控制,最初的读取位置,比如,从第五条开始读取并输出,一直到最后一条。谢谢大家了。   
               
 
 
   
   
   

解决方案 »

  1.   

    数据库操作不是很了解,印象中没有直接定位的方法一般数据库的表都有个自增字段id的吧,你直接
    select * from table where id > 5如果没有的话,你用个for循环执行5次rs.next()
      

  2.   

    rs.absolute(int row);
    将光标移动到此 ResultSet 对象的给定行编号。
    然后再开始循环遍历
      

  3.   

    你可以把这个表中的数据排一下序吗,而后定位一下就行了,方法就是上边的rs.absolute(int row);
      

  4.   

    int   getFetchSize()
      获取结果集合的行数,该数是根据此 Statement 对象生成的 ResultSet 对象的默认获取大小。
    结合2楼
      

  5.   

    同意2楼,其实就是数据库里的游标,建议你去学习下。rs.absolute(int n)就是直接定位到结果集里的第n条记录,要继续往后,就rs.next就行了。
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    conn = conn.getConnection();
    stmt = conn.CreateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//这部分上网查下,难说清楚,就是设置游标可滚动、对结果集修改是否敏感等
    String sql="select * from db";
    rs=stmt.executeQuery(sql);
    rs.absolute(5);//定位到第5条记录
    rs.getString(1);//读取结果集中的第一个字段
    rs.next
    我随便写下,你能明白意思就行。