< 에러 메시지 >
SEVERE: 경로 [/11]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [INSERT INTO forum.board (board_type_seq, title, content, reg_dtm, reg_member_seq ) VALUES( '1', ?, ?, DATE_FORMAT(NOW() ,'%Y%m%d%H%i%s'), '73');]; Parameter index out of range (3 > number of parameters, which is 2).; nested exception is java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).]을(를) 발생시켰습니다.
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
TransientDataAccessResourceException :
일시적으로 데이터 액세스 리소스(예: 데이터베이스 연결)에 문제가 발생했음을 나타냄
- 데이터 액세스 레이어에서 발생하므로, 데이터베이스와의 상호 작용과 관련된 코드를 검토하고 문제를 찾아 해결
< 원인 >
public int addBoard(HashMap<String, String> params) {
String sql ="INSERT INTO forum.board "
+ "(board_type_seq, title, content, reg_dtm, reg_member_seq ) "
+ "VALUES( '1', ?, ?, DATE_FORMAT(NOW() ,'%Y%m%d%H%i%s'), '73');";
Object[] args = { params.get("title"), params.get("trumbowyg-demo"), params.get("reg_member_seq")};
return update(sql, args);
}
reg_member_seq를 ? 에서 73으로 변경했는데 args배열에서 값을 가져오는 코드가 있어 발생
< 해결 >
public int addBoard(HashMap<String, String> params) {
String sql ="INSERT INTO forum.board "
+ "(board_type_seq, title, content, reg_dtm, reg_member_seq ) "
+ "VALUES( '1', ?, ?, DATE_FORMAT(NOW() ,'%Y%m%d%H%i%s'), '73');";
Object[] args = { params.get("title"), params.get("trumbowyg-demo")};
return update(sql, args);
}
args배열에서 reg_member_seq 값 제거
정상작동 확인
'에러 모음' 카테고리의 다른 글
TransientDataAccessResourceException (0) | 2024.05.09 |
---|---|
EmptyResultDataAccessException (0) | 2024.05.08 |
No Mapping, PageNotFound - 맵핑 에러 (0) | 2024.05.08 |
TransientDataAccessResourceException, SQLException (0) | 2024.04.27 |
EmptyResultDataAccessException (0) | 2024.04.26 |