Java 如何在jsp页面中从多行记录(如gridview)中删除单个记录

Java 如何在jsp页面中从多行记录(如gridview)中删除单个记录,java,javascript,jsp,Java,Javascript,Jsp,我正在尝试从多个记录中编辑和删除单个记录。下面是我在jsp页面上显示的示例记录 我可以使用下面的代码轻松编辑每行的记录 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.List" %> <%@ page import="java.

我正在尝试从多个记录中编辑和删除单个记录。下面是我在jsp页面上显示的示例记录

我可以使用下面的代码轻松编辑每行的记录

  <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
         <%@ page import="java.util.List" %>
          <%@ page import="java.util.Iterator" %>

     <%@page import="java.sql.ResultSet"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script src="jquery1.11.0.min.js"></script>

    </head>
    <body>

        <script type="text/javascript">


                function editRecording(task_id) {
                    //alert(task_id)

                            url = "EditRecord";
                            window.location="/RTTSchecking/"+url+"?task_id="+task_id;

                    }


        </script>

  <table align="center" border="1px" width="80%"  >
    <thead>
        <tr>
        <th>User_Id</th>
        <th>Class</th>
        <th>Subject</th>
        <th>Chapter</th>
        <th>Planned_Features</th>
        <th>Planned_Date</th>

    </thead>


            <%Iterator itr;%>       
            <%List data = (List) request.getAttribute("TaskData");

            for(itr = data.iterator(); itr.hasNext();)
            {
                %>
                <tr>
                <% String s = (String) itr.next(); 
                %>
                <td style="background-color: yellow;">
                <input type="text" name="tid" value="<%=s %>"></td>
                <td><input type="text" name="tid" value="<%=itr.next() %>"></td>

                <td><%=itr.next() %></td>
                <td><%=itr.next() %></td>
                <td><%=itr.next() %></td>
                <td><%=itr.next() %></td>


                <td><input type="button"  value="edit" name="<%=s%>" onclick="editRecording(this.name);"></td> 
             <td><input type="button"  value="delete" name="<%=s%>" onclick="deleteRecording(this.name);"></td> 



                <% } %>



                </tr>

                </table>


    </body>
    </html>
try {

                String uid=request.getParameter("user_id");
String class=request.getParameter("Tclass");
String sub=request.getParameter("subject");
String chap=request.getParameter("chapter");
String date=request.getParameter("date");

            convty = new Connectivity();
            con = convty.setConnection();
            st = con.createStatement();
            query = "delete from task_table where User_id='"+uid+"' and class='"+class+"' and subject='"+sub+"' and chapter='"+chap+"' and date='"+date+"'";
           st.executeUpdate(query);


            }
            catch(Exception e) {

            }
上面的代码运行良好。但我的问题是,我想根据用户id、类、主题、章节和计划日期删除记录,所以如何从单行(要删除行)中获取这些值

如何实现以下代码

  <script type="text/javascript">


                        function deleteRecording(User_id,Class,Subject,Chapter,Date) {
                            //alert(task_id,Class,Subject,Chapter,Date)

                                    url = "EditRecord";
                                    window.location="/RTTSchecking/"+url+"?user_id="+User_id+"&Tclass="+Class+"&subject="+Subject+"&chapter="+Chapter+"&date="+Date;

                </script>
注意:我可以使用delete from task_table删除记录,其中User_id='“+uid+”

但是如何处理query=“从任务”表中删除,其中用户id=“+uid+”,类=“+class+”,主题=“+sub+”,章节=“+chap+”,日期=“+date+”


我希望有人能帮助我。

一旦您从数据库中删除数据,这意味着它已被删除


单击“删除”按钮,您只需重新加载该页面。

我希望您现在已经找到了问题的解决方案。但如果您没有,我今天遇到了同样的问题,经过多次实验,我提出了以下使用多个条件删除行的语法:

  " DELETE FROM table_name WHERE " +
  " first_db_field_name = '" + matching_variable_name + "'" +
  " and next_db_field_name = '" + next_matching_variable_name + "'" +
  " and last_db_field_name = '" + last_matching_variable_name + "'";

他不是那个意思。他询问如何将类、主题、章节、日期的值传递给从网页获取数据的代码。我理解,但我的问题是,当单击“删除”按钮时,如何获取所有值?好的,你能分享你的代码吗?抱歉,删除了该评论。因为您是通过URL传递值,所以您将在servlet中的doGet操作中进行传递。因此,您必须在该标记内的隐藏参数中指定值。为什么在前两个字段中都指定name=“tid”。。?可能在第一个字段中更改为name=“uid”,在第二个字段中更改为name=“class”。最后,在onclick中,像onclick=“editRecording(uid,class);”>一样传递它,如果我使用editRecording(uid,class,chapter,subject,date)传递值,这意味着它总是采用第一行的值而不是所选行的值。如果您的编辑和删除正确地包含在该特定行中,它将起作用。。
  " DELETE FROM table_name WHERE " +
  " first_db_field_name = '" + matching_variable_name + "'" +
  " and next_db_field_name = '" + next_matching_variable_name + "'" +
  " and last_db_field_name = '" + last_matching_variable_name + "'";