코딩하는 문과생

[Spring] JDBC, NullPointException 본문

웹 프로그래밍/Spring

[Spring] JDBC, NullPointException

코딩하는 문과생 2020. 11. 25. 21:50

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로 생성하자.