使用 rs.next() 从 ResultSet 获取特定数据

Get a specific data from ResultSet with rs.next()

我正在尝试获取一个 <td> 数据,单击该按钮并将其提取到 servlet。我试图添加一个用于存储来自 ResultSet 的数据的隐藏输入,但我只能获取数据的第一行。

如果有其他更好的方法,请告诉我,谢谢。

<form action="Order_view" method="post">


    <%
        try {
         //Connection Code

    %>
       <table border=1 align=center style="text-align: center">
        <tbody>
            <tr>
                <th>Package ID</th>
                <th>Type</th>
            </tr>

            <%while (rs.next()) {
            %>

            <tr>

                <td><%out.print(rs.getString(1));%></td>
                <td><%out.print(rs.getString(2));%></td>  

                <td><button name="btnView">View</button></td>
                <input type="hidden" name="id" value="<%=rs.getString(1)%>" />
            </tr>

        <% } %>
        </tbody>
    </table>
    <br>
    <%} catch (SQLException e) {
        out.print(e.getMessage());%><br><%
        }
    %>
</form>

你不需要 <form> 来做到这一点,是的,你只会获得第一行,为了克服这个问题,你可以像下面那样做:

 <%
        try {
         //Connection Code

    %>
       <table border=1 align=center style="text-align: center">
        <tbody>
            <tr>
                <th>Package ID</th>
                <th>Type</th>
                <th>Action</th>
            </tr>

            <%while (rs.next()) {
            %>

            <tr>
                <td><%out.print(rs.getString(1));%></td>
                <td><%out.print(rs.getString(2));%></td>
        <!--here we are passing "id" of that particular row in <a href>--> 
                <td><a href="Yourservleturl?id=<%=resultset.getString(1) %> "><input type="button" value="View"></a></td>
               </tr>
        <% } %>
        </tbody>
    </table>
    <br>
    <%} catch (SQLException e) {
        out.print(e.getMessage());%><br><%
        }
    %>

然后在 servlet 中通过在 doGet 方法中使用 request.getParameter("id"); 获取该 ID 以进行进一步处理。