코딩하는 문과생
[Spring] JDBC, NullPointException 본문
1. JDBC란?
- 자바에서 DB프로그래밍을 하기위해 사용되는 API
- JDBC Driver를 통해 자바와 DB를 연결할 수 있다.
2. 문제점
- 신규 프로세스 개발 중 작성한 ServiceImpl과 xml파일 내 DB쿼리에 문제가 없어보이지만, 계속해서 에러발생
- 로그 확인 결과 Service쪽에서 저장된 값을 받아오지 못해 NullPointException 발생
- 그러나, 로그에 찍힌 Select쿼리는 조회값 정상 확인
*** 즉, 조회 결과를 자바에서 받지를 못함 ***
3. 대처
- Service측에서 Insert는 정상적으로 작동, Select문만 에러 발생
- 테이블 자체를 Drop하고 char(2)부분을 varchar2(1)로 수정해 새로 생성
- 정상 작동 확인
4. 이유?
- char로 세팅된 칼럼은 그 크기에 맞게 데이터를 가져오거나(ex. '12,'13','22'), Where절 내 '2 ' 와 같이 공백을 이용해 char크기만큼 가져와야 정상작동한다.
- 본인은 '1' 또는 '2' 값을 가져오려 했으므로 값을 찾을 수 없어 NPE가 발생한 것이었다. 하지만 varchar2는 길이가 가변적이므로 varchar2로 테이블을 생성하면 초기 길이와 상관없이 맵핑되는 데 문제가 없다.
결론: 테이블 생성 시, 문자열 칼럼은 varchar2로 생성하자.
'웹 프로그래밍 > Spring' 카테고리의 다른 글
[Spring] Spring 프레임워크(12) - 인터셉터와 로그인 (0) | 2020.03.12 |
---|---|
[Spring] Spring 프레임워크(11) - 예외처리 (0) | 2020.03.12 |
[Spring] Spring 프레임워크(10) - 트랜잭션과 로깅 (0) | 2020.03.12 |
[Spring] Spring 프레임워크(9) - AOP (0) | 2020.03.12 |
[Spring] Spring 프레임워크(8) - MyBatis (0) | 2020.03.10 |