如何从jsp更新查询?

时间:2012-05-13 09:06:56

标签: java jsp

我想通过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);

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

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

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

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

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

修改

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

答案 1 :(得分:0)

executeUpdate returns an int

尝试以下更改:

int result;
result = st.executeUpdate(query);

答案 2 :(得分:0)

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

尝试并测试,100%工作