2

我想在 JSP 中通过查询将数据插入数据库。这是我的代码

<%@ include file="connect.jsp" %>
<%
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + application.getRealPath("WEB-INF/travDB.accdb"));
    Statement st = con.createStatement(1004,1008);
    String user = request.getParameter("username");
    String pass = request.getParameter("pass");
    String konf = request.getParameter("konf");
    String phone = request.getParameter("phone");
    String tribe = request.getParameter("tribe");
    String start = request.getParameter("start");
    String agree = request.getParameter("agree");
    String temp = "";

        query = "insert into msuser (username, password, email, tribe, starting position, population) values ('"+user+"','"+pass+"','"+phone+"','"+tribe+"','"+temp+"',0)";
        st.executeUpdate(query);

        response.sendRedirect("Register.jsp?err=0");

    }

%>

为什么说

org.apache.jasper.JasperException: An exception occurred processing JSP page /JSP_H2Soal2_T213/doRegis.jsp at line 82
82:         st.executeUpdate(query);

有人可以帮我吗?

4

3 回答 3

0
<sql:update>
    UPDATE table_name
    SET column_name = new_value, column_name1 = new_value1
    WHERE column_name = some_value
</sql:update>

久经考验,百分百有效

于 2013-10-08T11:29:09.483 回答
0

不要在 JSP 中执行数据库更新——在您的业务层(servlet)中执行此操作。

您应该只使用 JSP 进行演示。

但是,这不是异常的原因。您将需要检查异常的完整堆栈跟踪(同样,如果您可以从 servlet 类记录它,这会更容易)。没有它,就不可能知道问题出在哪里。

其他人也遇到过同样的问题,请参阅:

编辑

Asif 的评论可能会解决您的问题:在您的查询中,您有一个包含空格的列名。带有空格的列名是有问题的。检查 DBMS 的转义语法——或者,如果可以,将列名更改为不带空格的名称。

于 2012-05-13T09:22:43.153 回答
0

executeUpdate 返回一个 int

尝试以下更改:

int result;
result = st.executeUpdate(query);
于 2012-05-13T09:29:30.440 回答