작년에이어 올해에도 이 시기에는 시스템 오픈을 앞두고 정신없이 개발 진행중!
Spring Framework에서 iBatis에서 제공하는 라이브러리들을 이용하여
XML에 정의되어 있는 쿼리문을 실행하는 도중에 당황스러운 일을 경험했다.
다음과 같이 XXXDAO.java 파일에 iBatis에서 제공하는
insert(queryId, parameterObject) 함수를 사용하여
insert문을 수행하였고, DBMS는 Oracle을 사용하기 때문에
기본적으로 insert된 row의 수가 return 될 것이라고 생각했다.
int result = 0;
result = (Integer)insert("kipo.po.is.dao.insertDpst.002", paramVO);
if(result != 0){
return true;
}else{
return false;
}
하지만 수행결과 NullPointerException을 당하게 됐다.
당황하며 iBatis 라이브러리를 조사해보니 insert(queryId, parameterObject) 함수는 수행 후
새로 생성된 row의 PK를 Object로 return한다고 명시되어 있다.
간단한 해결 방법은, insert(queryId, parameterObject) 함수 대신
update(queryId, parameterObject) 함수를
사용하면 쿼리 수행 성공 시 1, 실패 시 0을 반환 받을 수 있다.
늘 사용하던 것 만 사용해서 스펙이나 튜토리얼등을 확인 안하다보니
이런 황당한 일을 겪게 된다. 항상 공부하자!
'C o m p u t e r > P r o g r a m m i n g' 카테고리의 다른 글
| 전자정부(Spring) Framework] iBatis 입력(INSERT) 결과 (0) | 2012/11/28 |
|---|---|
| 전자정부(Spring) Framework] Spring MVC 설정 (1) | 2012/08/18 |
| html5] canvas - 01 (0) | 2012/05/09 |
| 전자정부(Spring) Framework] iBatis 데이터 매퍼 (1) | 2012/04/17 |
| Fedora11에서 root계정으로 로그인하기. (0) | 2010/08/05 |
| URAI application (2) | 2009/10/30 |
댓글을 달아 주세요