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

JSP でデータベースの更新を実行しないでください。ビジネス層 (サーブレット) で実行してください。

プレゼンテーションには JSP のみを使用してください。

ただし、これは例外の原因ではありません。例外から完全なスタック トレースを調べる必要があります (これも、サーブレット クラスからログに記録できる場合は簡単です)。それがなければ、何が問題なのかを知ることは不可能です。

他の人も同じ問題を経験しています。以下を参照してください。

編集

Asif のコメントが問題を解決するかもしれません: クエリで、スペースを含む列名があります。スペースを含む列名は問題があります。DBMS のエスケープ構文を確認してください。または、可能であれば、列名をスペースを含まない名前に変更してください。

于 2012-05-13T09:22:43.153 に答える
0

executeUpdate は int を返します

次の変更を試してください。

int result;
result = st.executeUpdate(query);
于 2012-05-13T09:29:30.440 に答える
0
<sql:update>
    UPDATE table_name
    SET column_name = new_value, column_name1 = new_value1
    WHERE column_name = some_value
</sql:update>

試行錯誤、100%動作

于 2013-10-08T11:29:09.483 に答える