通过 servlet 在 oracle 中获取第 2 行、第 3 行....200 行的 table

fetch 2nd row, 3rd row....200 row of a table in oracle by servlet

我有一个 table 在 oracle 中命名为 abc 和 4 条记录如下:

   F         S        
  apple    mango 
  tiger    lion
  oak      banana
  pink     orange

home.jsp

 <form action="NewServlet" method="post">
 <input type="text" name="count"  value="first" style="display:none;">
 <input type="submit" value="NEXT">
 </form>

NewServlet.java

if(request.getParameter("count").equals("first")){// when i clicked on next button having value first

    rs=st.executeQuery("SELECT * FROM abc ORDER BY 'F','S' FETCH FIRST 1 ROWS ONLY"); 
    }// fetches apple and mango
    else{
rs=st.executeQuery("SELECT * FROM abc ORDER BY 'F','S' OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY");// when i clicked on next button having value second (in display.jsp)
        }// fetches tiger and lion

request.getRequestDispatcher("display.jsp").forward(request, response);

display.jsp

<form action="NewServlet" method="post">
<input type="text" name="count"  value="second" style="display:none;">
<input type="submit" value="NEXT">
</form>

 String abc="", abc1=""
 abc= (String) request.getAttribute("fi");// prints apple 1st time and tiger 2nd time but 3rd and 4th record is not fetched
 abc1= (String) request.getAttribute("fi1");//prints mango 1st time and lion 2nd time but 3rd and 4th record is not fetched

当我继续单击 home.jspdisplay.jsp 中都存在的 NEXT 按钮时,如何获取第 3 条和第 4 条记录等直到第 100 行?

您可以使用作为请求属性传递的 count 变量。 例如:

NewServlet.java

String count = request.getParameter("count");
int c = 0;
String query;
if(count != null && count.matches("\d+")){
    c = Integer.parseInt(count);
    query = "SELECT * FROM abc ORDER BY 'F','S' OFFSET "+String.valueOf(c)+" ROWS FETCH NEXT 1 ROWS ONLY";
}else{
   query = "SELECT * FROM abc ORDER BY 'F','S' FETCH FIRST 1 ROWS ONLY";
}
request.setAttribute("count",++c);

display.jsp

<input type="text" name="count"  value="<%=(Integer)request.getAttribute("count")%>" style="display:none;">

home.jsp

 <form action="NewServlet" method="post">
 <input type="submit" value="NEXT">
 </form>

home.jsp 中删除 count 输入,以便您第一次调用 servlet 时,count 参数将为空。