
▼ 기존 코드 (오류 발생)
private static final String SELECT_ONE = "SELECT * FROM BOARD B LEFT OUTER JOIN MEMBER M ON B.MID = M.MID WHERE B.BID = 101";
try {
pstmt = conn.prepareStatement(SELECT_ONE);
pstmt.setInt(1, boardDTO.getBid());
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
data = new BoardDTO();
data.setBid(rs.getInt("BID"));
data.setTitle(rs.getString("TITLE"));
data.setContent(rs.getString("CONTENT"));
data.setMid(rs.getString("MID"));
data.setBcount(rs.getInt("BCOUNT"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtil.disconnect(conn, pstmt);
}
▼ 오류 해결 부분
private static final String SELECT_ONE = "SELECT * FROM BOARD B LEFT OUTER JOIN MEMBER M ON B.MID = M.MID WHERE B.BID = ?";
//기존 코드에 ? 대신 SQL에서 가져온 숫자 101이 그대로 기재되어 있었음
SELECT * FROM BOARD B
LEFT OUTER JOIN MEMBER M
ON B.MID = M.MID
WHERE B.BID = 101;
BOARD.sql 에서 쿼리문을 가져올 때
테스트용으로 사용했던 쿼리문을 그대로 가져온 뒤
파라미터화(? 처리)가 누락되어 사용자 값이 101로 고정되었고
try {
pstmt = conn.prepareStatement(SELECT_ONE);
pstmt.setInt(1, boardDTO.getBid());
ResultSet rs = pstmt.executeQuery();
해당 과정이 처리될 수 없었다.
101을 다시 ?로 파라미터화 하면
정상적으로 실행된다.
SELECT * FROM BOARD B
LEFT OUTER JOIN MEMBER M
ON B.MID = M.MID
WHERE B.BID = ?;
해결!
'개주 훈련일지 > 🔥 히노카미 코구라(오류 수정)' 카테고리의 다른 글
| 오류내역) SQLIntegrityConstraintViolationException (1) | 2025.11.10 |
|---|---|
| 오류내역) InputMismatchException (0) | 2025.11.10 |
| 오류내역) selectOne 메서드 활용 시 발생한 Controller의 NullPointerException (0) | 2025.11.03 |
| 오류내역) java.sql.SQLSyntaxErrorException (0) | 2025.11.03 |
| 오류내역) NullPointerException (0) | 2025.10.28 |