문제상황:
위의 사진과 같은 오류가 발생하였고, 코드는 아래와 같이 작성했었습니다.
이와 같은 에러가 발생하는 이유는 즉, 들어갈 값이 부적절해서 발생하는 에러입니다.
int result = 0;
String sql = "insert into board values((select max(seq)+1 from board),?,?,?,sysdate,?,?)";
PreparedStatement st = con.prepareStatement(sql);
st.setString(2, board.getTitle());
st.setString(3, board.getContents());
st.setString(4, board.getWriter());
st.setInt(6, board.getPassword());
st.setInt(7, 0);
st.executeUpdate();
처리내역:
PreparedStatement로 쿼리문 작성시 파라미터를 물음료포 표시하고,
"PreparedStatement변수명.setString(몇번째 물음표 인지 숫자로 표시, 들어갈 값)" 과 같이 작성해야합니다.
그러나 저는 insert에 들어가는 칼럼이 7개여서 거기에 맞춰 들어갈 칼럼 위치의 숫자로 표시해 실행을 시켜 맨 위와 같은 부적절한 인덱스 오류가 뜨게 되었습니다.
즉, 순서가 틀려서 서로 다른 부적합한 값이 들어가 에러가 발생했던 것이였습니다.
그래서 물음표만 넣은 위치 순서를 다시 넣어서 실행시킨 결과 아주 잘 실행되었습니다!!
int result = 0;
String sql = "insert into board values((select max(seq)+1 from board),?,?,?,sysdate,?,?)";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, board.getTitle());
st.setString(2, board.getContents());
st.setString(3, board.getWriter());
st.setInt(4, board.getPassword());
st.setInt(5, 0);
result = st.executeUpdate();
😊 잘못된 내용이 있다면 언제든지 댓글로 남겨주세요 😊
728x90
반응형
LIST
댓글