我试图根据前一个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')";
它运作得很好
请帮忙!
答案 0 :(得分:0)
您没有使用参数替换。您将值直接放入字符串中。因此,您需要在适当的地方使用分隔符:
String query = "INSERT INTO request VALUES("+userdbdeptid+", '"+userdbpid+"', '" + userdbsec + "', '"+userNetID+"')";
答案 1 :(得分:0)
在您的示例中,您已将值放在引号中,但在代码中它并未执行此操作。看起来你需要引用你的值,可能它们是表定义中的字符串。
答案 2 :(得分:0)
在生成的sql查询中没有引号。
如果您要添加System.out.println(query);
,您会看到:
INSERT INTO request VALUES(575,76, 01, root)
在你的情况下没有有效的sql。
在必要时在sql中添加引号。