【问题标题】:Why can't I insert into the database with this code? - JSP为什么我不能用这段代码插入数据库? - JSP
【发布时间】:2014-08-02 22:56:26
【问题描述】:

我正在尝试根据上一个 jsp 中的信息将数据插入到表中,但我不断收到错误消息。我有打印语句来检查数据是否正在传输并且它们正在传输。所以我认为它与查询语句有关......

    <%= session.getAttribute("userid")%>
    <%= session.getAttribute("deptid")%>
    <%= session.getAttribute("pid")%>
    <%= session.getAttribute("sec")%>

<%
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;        

    Class.forName(driverName);
    conn = DriverManager.getConnection(url, user, password);

    Statement statement = conn.createStatement();

    String userdbid = (String)session.getAttribute("userid");
    String userdbdeptid = (String)session.getAttribute("deptid");
    String userdbpid = (String)session.getAttribute("pid");
    String userdbsec = (String)session.getAttribute("sec");

    String query = "INSERT INTO request VALUES("+userdbdeptid+","+userdbpid+","+userdbsec+","+userNetID+")";

    statement.executeUpdate(query);

%>

我收到此错误:

    org.apache.jasper.JasperException: An exception occurred processing JSP page 

    statement.executeUpdate(query)

但是当我运行类似的东西时:

    String query = "INSERT INTO request VALUES("575",'76' '01', 'root')";

效果很好

请帮忙!

【问题讨论】:

    标签: java mysql jsp servlets


    【解决方案1】:

    您没有使用参数替换。您将值直接放入字符串中。因此,您需要在适当的地方使用分隔符:

    String query = "INSERT INTO request VALUES("+userdbdeptid+", '"+userdbpid+"', '" + userdbsec + "', '"+userNetID+"')";
    

    【讨论】:

    • 谢谢。我有点太粗心了
    • PreparedStatement 没有以正确的方式使用。查询中的? 在哪里?
    【解决方案2】:

    在您的示例中,您将值放在引号中,但在代码中并没有这样做。看起来您需要引用您的值,大概它们是表定义中的字符串。

    【讨论】:

      【解决方案3】:

      在生成的 sql 查询中没有引号。 如果您添加System.out.println(query);,您会看到:

      INSERT INTO request VALUES(575,76, 01, root)
      

      在您的情况下,这不是有效的 sql。

      在必要时在您的 sql 中添加引号。

      【讨论】:

        猜你喜欢
        • 2016-02-21
        • 2016-11-14
        • 1970-01-01
        • 1970-01-01
        • 2019-09-07
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 2016-08-05
        相关资源
        最近更新 更多