T.I.L (만나온 오류와 해결 방법)

JDBC PreparedStatement에서 만난 오류

ChoiDooSic 2021. 8. 5. 01:09

매개변수로 student_num, column, value를 받고

매개변수를 이용해 sql문에 UPDATE student SET ? = ? WHERE student = num ?

이라는 쿼리문을 넣어 ?학번에 해당하는 학생의 원하는 컬럼을 선택하여 값을 변경하여주고 싶었다

그래서 값을 이렇게 넣어주었고

pstmt.setString(1, coulmn)

pstmt.setString(2, value)

pstmt.setString(3, student_num)

열의 명이 부적합하다는 오류가 생긴것이다

나는 이 문제때문에 한참을 헤메였다...

 

문제의 원인은 ?의 자리에는 컬럼명(필드)이 들어갈 수 없다는 것이였다....!!!

그래서 "UPDATE student SET "+ column +" = ? WHERE student = num ?"

pstmt.setString(1, value)

pstmt.setString(2, student_num)

이렇게 만들어서 문제를 해결하였다.