[SQL] 예외 : SQLException :하는 executeQuery 방법은 업데이트를 사용할 수 없습니다
SQL예외 : SQLException :하는 executeQuery 방법은 업데이트를 사용할 수 없습니다
나는 자바 서블릿 클래스를 사용하여 더비 DB에 등록 양식에서 가져온 사용자 정보를 삽입하는 것을 시도하고있다.
사용자가이 작성 사용자의 정보 제출 '버튼을 클릭 한 후 바로 내가 넷빈즈에 DB에 연결하세요. 그럼이 방법을 실행해야합니다 :
public void insertNewUser(String userName, String passWord, String lastName, String firstName, String age, char sex, String email) {
try {
stmt = conn.createStatement();
String insertNewUserSQL = "INSERT INTO " + studentsTable + " VALUES ('" + userName + "', '" + passWord + "', '" + lastName + "', '" + firstName + "', " + age + ", '" + sex + "', '" + email + "')";
System.out.println(insertNewUserSQL);
stmt.executeQuery(insertNewUserSQL);
stmt.close();
} catch(SQLException sqlExcept) {
sqlExcept.printStackTrace();
}
}
그러나 나는 다음과 같은 예외가 점점 계속 :
java.sql.SQLException: executeQuery method can not be used for update.
이 정확히 무엇을 의미합니까?
내가 넷빈즈 SQL 명령 창에 수동으로 할 수있는 SQL 명령이 올바른 것입니다.
서블릿이나 내가 모르는 뭔가가 제한이 있습니까?
사전에 감사합니다!
해결법
-
==============================
1.당신이 기록을 삽입하고 있기 때문에, 당신은 executeUpdate의를 사용한다 ()하지하는 executeQuery ().
당신이 기록을 삽입하고 있기 때문에, 당신은 executeUpdate의를 사용한다 ()하지하는 executeQuery ().
다음은 일반적으로 오용하는 몇 가지 방법은 다음과 같습니다 :
() 실행 개요 boolean
의 ResultSet하는 executeQuery ()
INT executeUpdate의 ()
이 SQL 인젝션에 취약으로 한가지 더, 쿼리가 약합니다. PreparedStatement의를 사용하여 파라미터 마십시오.
코드 조각 샘플 :
String insertNewUserSQL = "INSERT INTO " + studentsTable + " VALUES (?, ?, ?, ?, ?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(insertNewUserSQL); pstmt.setString(1, userName); // ... repeat this step until the last parameter .... pstmt.setString(7, email); pstmt.executeUpdate();
-
==============================
2.다음과 같이 업데이트 값에 당신은, 갱신 가능한 ResultSet의를 사용해야합니다 :
다음과 같이 업데이트 값에 당신은, 갱신 가능한 ResultSet의를 사용해야합니다 :
ResultSet res = preparedStatement.executeQuery(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); res.first(); res.updateInt("id", 2); res.updateRow();
다음과 같이 다른 방법으로는, 문장의 executeUpdate의 방법을 사용할 수 있습니다 : statement.executeUpdate ( "업데이트 테이블 세트 ID = 2");
from https://stackoverflow.com/questions/16006868/sqlexception-executequery-method-can-not-be-used-for-update by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL : 다 대다 테이블 및 쿼리 (0) | 2020.07.03 |
---|---|
[SQL] SQL Server에 대한 CONCAT_WS () (0) | 2020.07.03 |
[SQL] 어떻게 VBA에서 변수로 SQL 쿼리의 결과를 저장하려면? (0) | 2020.07.03 |
[SQL] SQL - INSERT 및 ID 자동 증가 값을 잡기 (0) | 2020.07.03 |
[SQL] 어떻게 내가 준비된 문을 사용하지 않고 SQL을 소독 (0) | 2020.07.03 |