코딩항해기
[Error/Spring] SQLSyntaxErrorException (+ SQL Exception 정리) 본문
Error solution
[Error/Spring] SQLSyntaxErrorException (+ SQL Exception 정리)
miniBcake 2024. 10. 30. 16:16
해당 에러는 Mapper에서 없는 컬럼을 호출할 때 발생한다. 콘솔 내용을 볼 때 STORE 오타로 인해 발생한 것임을 알 수 있다.
정확히는 SQL syntax 규칙을 위반했다는 예외로 대부분의 원인은 오탈자로 인해 발생한다고 한다.
SQL 관련 Exception 시리즈
예외 | 설명 | 발생 예시 |
SQLSyntaxErrorException | SQL 문법 오류 | - 테이블명 오타<br>- WHERE 절 구문 오류<br>- 예약어 사용 실수 |
SQLNonTransientException | 일시적이지 않은 오류(코드 수정 필요) | - 테이블/컬럼 없음<br>- 권한 없음 |
SQLTransientException | 일시적인 오류(재시도 가능) | - 데드락<br>- 타임아웃<br>- 일시적 연결 끊김 |
SQLInvalidAuthorizationException | 인증 관련 오류 | - 잘못된 비밀번호<br>- 계정 잠김 |
SQLDataException | 데이터 관련 오류 | - 숫자 형식 오류<br>- 날짜 형식 오류 |
SQLIntegrityConstraintViolationException | 제약조건 위반 | - FK 참조 오류<br>- UNIQUE 위반<br>- NOT NULL 위반 |
SQLTransactionRollbackException | 트랜잭션 롤백 발생 | - 데드락으로 인한 롤백<br>- 일관성 위반으로 인한 롤백 |
SQLFeatureNotSupportedException | 지원하지 않는 기능 사용 | - DBMS가 지원하지 않는 SQL 기능 사용 |
SQLTimeoutException | 시간 초과 | - 쿼리 실행 시간 초과<br>- 락 대기 시간 초과 |
SQLRecoverableException | 복구 가능한 오류 | - 네트워크 일시 중단<br>- 서버 일시적 부하 |
SQLClientInfoException | 클라이언트 정보 설정 오류 | - 잘못된 클라이언트 속성 설정 |
SQL 관련 주요 Exception
예외 | 설명 | 발생 예시 |
SQLException | SQL 관련 모든 예외의 부모 클래스 | 구체적인 하위 예외를 먼저 catch하고 마지막에 처리 |
DataIntegrityViolationException | 데이터 무결성 위반 (FK 제약조건 등) | 데이터 정합성 체크 후 입력 |
DuplicateKeyException | Primary Key/Unique 제약조건 위반 | 중복 데이터 체크 로직 추가 |
BadSqlGrammarException | SQL 문법 오류 | SQL 구문 검증 필요 |
QueryTimeoutException | 쿼리 실행 시간 초과 | 쿼리 최적화 또는 타임아웃 시간 조정 |
ConnectException | DB 연결 실패 | DB 서버 상태 및 네트워크 확인 |
TransactionTimeoutException | 트랜잭션 시간 초과 | 트랜잭션 범위 조정 또는 타임아웃 설정 변경 |
TypeMismatchException | 데이터 타입 불일치 | 데이터 타입 매핑 확인 |
CannotAcquireLockException | DB 락 획득 실패 | 트랜잭션 격리 수준 조정 또는 데드락 확인 |
CommunicationsException | DB 통신 중 오류 발생 | 네트워크 연결 상태 확인 |
JDBCTemplate 관련 Exception
예외 | 설명 | 발생 예시 |
DataAccessException | 데이터 액세스 관련 최상위 예외 | 모든 데이터 접근 예외의 부모 |
BadSqlGrammarException | SQL 문법 오류 | 잘못된 컬럼명, 테이블명 사용 |
DataIntegrityViolationException | 데이터 무결성 위반 | FK 제약조건 위반, UNIQUE 제약조건 위반 |
EmptyResultDataAccessException | 결과가 없을 때 | queryForObject()로 단일 결과 조회 시 결과 없음 |
IncorrectResultSizeDataAccessException | 결과 개수 불일치 | 단일 결과 예상했으나 복수 결과 반환 |
DataAccessResourceFailureException | DB 리소스 접근 실패 | DB 서버 다운, 네트워크 문제 |
CannotAcquireLockException | Lock 획득 실패 | 데드락, Lock 타임아웃 |
QueryTimeoutException | 쿼리 실행 시간 초과 | 느린 쿼리, 서버 부하 |
InvalidDataAccessResourceUsageException | 리소스 사용 방법 잘못됨 | 잘못된 DB 설정, JDBC URL 오류 |
UncategorizedSQLException | 분류되지 않은 SQL 예외 | 예상치 못한 DB 오류 |
'Error solution' 카테고리의 다른 글
[Error/EL] EL식 있는 페이지가 하얗게 뜰 때 (0) | 2024.10.31 |
---|---|
[Error/Spring] 특정 검색 시 가게 검색 페이지 로딩 실패 (0) | 2024.10.31 |
[Error/Spring] TransientDataAccessResourceException (0) | 2024.10.30 |
[Error/Spring] NPE : null인 배열 for-each문 (0) | 2024.10.29 |
[Error/Spring] IllegalStateException (0) | 2024.10.29 |