반응형

한빛아카데미의 '올인원 스프링 프레임워크'으로 자바 스프링을 공부하면서 이제 데이터베이스와 통신하는 단계까지 왔다. 이제 관리자 회원가입 페이지를 만들면서 천천히 DAO, VO 등을 적응해나갔다.

데이터베이스를 자바와 연결하기 위해서 JdbcTemplate를 이용해 데이터베이스와 통신을 만들었고 Run Server를 돌린 후 관리자 회원가입 정보를 입력하고 확인 버튼을 눌렀다.

관리자 회원가입 정보 입력 화면

그랬더니 아래와 같은 오류가 나왔다.

org.springframework.dao.TransientDataAccessResourceException:
PreparedStatementCallback;
SQL [INSERT INTO tbl_admin_member(a_m_approval, a_m_id, a_m_pw, a_m_name, a_m_gender, a_m_part, a_m_postion, a_m_phone, a_m_req_date, a_m_mod_date)VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())]; (conn=16) Parameter at position 9 is not set; nested exception is java.sql.SQLTransientConnectionException:
(conn=16) Parameter at position 9 is not set

TransientDataAccessResourceException같은 오류는 처음 봤다. 무언가 내가 빼먹었을 것 같은 오류라고 짐작했다.

사전을 찾아 뜻을 번역해보니 '일시적인 데이터 접근 자원 예외'라고 한다. 일시적으로 데이터에 접근할 수 없다는 의미라고 생각하면서 STS 콘솔창을 내려 오류 내용을 더 구체적으로 살펴봤더니 아래 문장이 나타났다.

Caused by: java.sql.SQLTransientConnectionException: (conn=16) Parameter at position 9 is not set

아홉번째 위치의 파라미터(매개변수)가 설정되지 않았다는 것이다.

내가 멍청하게도 INSERT 쿼리문에서 데이터를 삽입할 컬럼 수를 10개로 설정했는데(첫 번째 코드블록 참고) 파라미터 개수는 11개였다. 내가 컬럼 하나를 빼먹은 것이다.

그래서 테이블 전체 컬럼을 살펴보니 'a_m_mail' 컬럼을 빼먹었다.

다시 실행해보니 TransientDataAccessResourceException는 사라졌지만 다른 오류가 나타났다.

다음편에 계속...

반응형

'개발일기 > mariaDB' 카테고리의 다른 글

[mariaDB_오류해결_02] BadSqlGrammarException  (0) 2024.05.19

+ Recent posts