2012-05-13 4 views
2

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); 

이 사람이 나를 도울 수 있을까요?

+0

작동; 시도 캐치와 함께 오류가 아니지만 쿼리가 삽입되지 않았습니다. ( – greenthunder

+1

stacktrace가 있습니까? –

+3

'msuser (사용자 이름, 비밀번호, 이메일, 부족, 시작 위치, 채우기)에 삽입'.. _ _ 시작 위치에는 공백이 없다. 일반적으로 열 이름에 공백이 없다. – Asif

답변

0

JSP에서 데이터베이스 업데이트를 수행하지 마십시오. 비즈니스 계층 (서블릿)에서이 작업을 수행하십시오.

프리젠 테이션을 위해서만 JSP를 사용해야합니다.

그러나 예외는 아닙니다. 예외에서 전체 스택 추적을 검사해야합니다 (다시 말하지만 서블릿 클래스에서 로그를 기록 할 수 있으면이 방법이 더 쉽습니다). 그것 없이는 문제가 무엇인지 알 수 없습니다.

다른 사람이 같은 문제를 경험 한, 참조 :

편집

문제를 해결할 수 있습니다 아시프의 코멘트 : 조회에서, 공백을 포함하는 열 이름이 있어야합니다. 공백이있는 열 이름은 문제가 있습니다. DBMS의 이스케이프 구문을 확인하십시오. 또는 가능한 경우 열 이름을 공백없이 변경할 수 있습니다.

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

은 시도 및 테스트, 내가 st.executeUpdate (쿼리)를 포장하는 경우 100 %

관련 문제