< 에러 메시지 >
4월 27, 2024 10:27:04 오후 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: 경로 [/05]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [INSERT INTO forum.`member` (member_id, passwd, member_nm, email, auth_yn, pwd_chng_dtm, join_dtm) VALUES('?', '?', '', '?', '', '', DATE_FORMAT(NOW() ,'%Y%m%d%H%i%s')) ]; Parameter index out of range (1 > number of parameters, which is 0).; nested exception is java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).]을(를) 발생시켰습니다.
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
TransientDataAccessResourceException
일시적인 문제가 예상되는 데이터 리소스에 맥세스하는 과정에서 발생하는 에러
- 데이터베이스 연결 문제
- 데이터베이스 트랜잭션 시간 초과
- 데드락 (여러 데이터베이스 트랜잭션이 서로의 잠금 해제를 기다리는 상황)
- 리소스 고갈
< 원인 >
public int join(HashMap<String, String> params) {
String sql = "INSERT INTO forum.`member` "
+ "(member_id, passwd, member_nm, email, auth_yn, pwd_chng_dtm, join_dtm) "
+ "VALUES('?', '?', '', '?', '', '', DATE_FORMAT(NOW() ,'%Y%m%d%H%i%s')) ";
Object[] args = {params.get("memberId"), params.get("passwd"), params.get("email")};
return update(sql, args);
Dao에서 SQL 쿼리에서 '?'를 사용하여 변수를 바인딩하려하는데
변수를 문자열에 직접 삽입하여 에러 발생
<해결>
public int join(HashMap<String, String> params) {
String sql = "INSERT INTO forum.`member` "
+ "(member_id, passwd, member_nm, email, auth_yn, pwd_chng_dtm, join_dtm) "
+ "VALUES( ?, ?, '', ?, '', '', DATE_FORMAT(NOW() ,'%Y%m%d%H%i%s')) ";
Object[] args = {params.get("memberId"), params.get("passwd"), params.get("email")};
return update(sql, args);
'?'를 ?로 ' '를 제거하여 쉽게 해결
'에러 모음' 카테고리의 다른 글
TransientDataAccessResourceException (0) | 2024.05.08 |
---|---|
No Mapping, PageNotFound - 맵핑 에러 (0) | 2024.05.08 |
EmptyResultDataAccessException (0) | 2024.04.26 |
IncorrectResultSetColumnCountException (0) | 2024.04.25 |
CannotGetJdbcConnectionException, CommunicationsException (0) | 2024.04.25 |