2010-11-26 6 views
1

'결과 셋'에서 잘못 생각한 것 같습니다. 데이터를 삽입 내 코드는 다음과 같습니다ResultSet이 INSERT 쿼리를 지원하지 않습니까? 오류 메시지 : 형식이 일치하지 않습니다 : int에서 String으로 변환 할 수 없습니다.

ResultSet columns = statement.executeUpdate("INSERT INTO Feedback (Username, Feedbacks) VALUES('" + user + "','"+ msg +"')"); 

컴파일 오류는 다음과 같습니다

유형 불일치 : 당신이 나를 도와 줄 수

문자열

로하는 int로 변환 할 수 없습니다?

답변

4

Statement#executeUpdate()은 영향을받는 행을 나타내는 ResultSet을 반환하지만 int은 반환하지 않습니다. 다음과 같이 수정하십시오.

int affectedRows = statement.executeUpdate(sql); 

영향을받는 행의 수에 관심이 없으면 무시하십시오.

그런데 컴파일 자체가 이상합니다. 잘못된 라인을 보지 않습니까? 이 오류는 Stringint 결과를 할당하려고 시도했지만 코드에 int 결과를 ResultSet에 할당하려고한다는 것을 보여줍니다. usermsg은 사용자 제어 입력의 일부 경우 말했다과 현재의 문제와 관련이없는


, 다음이 코드 조각은 SQL injectionattacks하는 경향이있다. StatementPreparedStatement으로 대체하는 것이 좋습니다. prepared statement 사용 방법은 this tutorial을 참조하십시오.

+0

100 만에 달하는 IT에 종사하고 있으며 나는 너무 행복해, 당신은 행복하고 절실합니다! 빠른 답장을 보내 주셔서 감사합니다! – Dayne

+0

당신은 환영합니다 :) – BalusC

+0

그래, 처음에 나는 컴파일 오류가 이상하다고 생각하지만, 내가 그것을 구글로 만들었다면, 나는 같은 문제를 가진 누군가를 발견했다. 그리고 또 다른 누군가는 내가 실제로 얻지 못한 ResultSet에 대해 언급했다. 그것. 삽입하고 싶은 데이터가 정수가 아닙니다. 그래서 executeUpdate가 결과 집합을 반환하지 않는다고 말했을 때 '그냥 무시하십시오'라고 말하면 결과 집합을 삭제하려고 시도하고 작동합니다! 하하 – Dayne

관련 문제