JSP中更新查询的问题

时间:2011-09-25 13:45:37

标签: java

所有,我在jsp中写了一个更新查询,但是我遇到了语法错误,请有人帮忙。这是查询

<%
        HttpSession ss=request.getSession();
        String get_name=ss.getAttribute("key").toString().toUpperCase();
        if(get_name == null)
        {
            response.sendRedirect("index.jsp");
        }
        else{
    %>

    <h2 align="left" style="color: white"><span style="background-color: blue">Welcome <%=get_name%></span></h2>
    <%
            }
            int i=0;
            String id=ss.getAttribute("id").toString();
            int id_num=Integer.parseInt(id);

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection c=DriverManager.getConnection("jdbc:odbc:database");
            Statement s=c.createStatement();

            String name_server=request.getParameter("name_ser");
            String details_ser=request.getParameter("details_ser");
            String date_ser=request.getParameter("date_ser");
            String status_ser=request.getParameter("status_ser");
            String subject_ser=request.getParameter("subject_ser");
            String cost_ser=request.getParameter("cost_ser");
            JOptionPane.showMessageDialog(null, name_server+","+details_ser+","+date_ser+","+status_ser+","+subject_ser+","+cost_ser+","+id_num+","+i);
            i=s.executeUpdate("update RECORD set NAME='"+name_server+"' ,DETAILS='"+details_ser+"' ,DATEE='"+date_ser+"' ,Status='"+status_ser+"' ,Subject='"+subject_ser+"' ,COST='"+cost_ser+"' where ID="+id_num+"");
            c.close();
            s.close();
            if(i>0)
            {
                response.sendRedirect("welcome.jsp");
            }
    %>        

4 个答案:

答案 0 :(得分:1)

你没有问,但你应该知道这段代码是个坏主意。 JSP中的Scriptlet代码是错误的方法。

我建议您学习JSTL和Model-2 MVC。你应该有servlet来完成与JSP协作的所有实际工作。该页面应该只是显示控制器/ servlet告诉它的内容。

答案 1 :(得分:1)

日期可能是数据库中的保留字。

顺便说一下,您应该注意SQL注入安全问题,避免混合表示和业务逻辑。

答案 2 :(得分:0)

由于没有例外,所以我可以说以下可能是原因。

  1. 您的变量或变量“在字符串中的某个地方打破了查询。
  2. 您的变量或变量的数据类型无效。
  3. 还有其他原因,但首先考虑一下。

答案 3 :(得分:-1)

这句话

  

其中ID =“+ id_num +”“);

需要结束单引号,如:

  

其中ID =“+ id_num +”'“);