반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 붕대 감기
- 멀티태스킹
- 혼공얄코
- 오블완
- 리눅스
- 입출력
- break 사용법
- spring security 설정
- 쿠키
- 객체지향
- 프로그래머스 붕대 감기
- contiune
- java
- 자바의 정석
- 티스토리챌린지
- 붕대 감기 자바
- 멀티프로세싱
- 프로그래머스
- 자바의정석
- 오버라이딩
- 캡슐화
- 다형성
- 중첩 break
- spring security
- 오버로딩
- SQL Mapper
- continue 사용법
- CPU
- over()
- hackerrank
Archives
- Today
- Total
쉽게 쉽게
[ibatis] DML(insert, update, delete)의 return값 본문
반응형
1. 이슈
프로젝트 도중 ibatis를 이용한 insert문을 작성했다. 그리고 return 값을 idx로 받았다.
그러나 이 insert 결과로 NullPointException이 발생했다.
분명히 모든 파라미터 값도 잘 들어와 있고 sql 문만을 실행했을 때도 잘 작동했는데, NullPointException이 뜨니 당황했다.
그래서 이 이슈를 해결하기 위해 ibatis의 DML문이 return 하는 결과값을 찾아봤다.
int idx =sqlMapClientTemplate.insert("user.insertRequest", request_map);
-- nullPointException이 뜨는 오류 발생!! --
2. ibatis return값
성공 | 실패 | |
insert() | null | 에러 |
update() | 1 | 0 |
delete() | 삭제된 row 수 | 0 |
insert문 성공 시 null을 리턴하기 때문에, nullPointException이 떴던 것이다.
때문에 리턴 값을 받는 idx를 삭제해주니 오류가 사라졌다.
sqlMapClientTemplate.insert("user.insertRequest", request_map);
단 리턴값을 받아야하는 상황이라면 다른 방법을 사용해야 한다.
<insert id="insertRequest" parameterClass="java.util.Map">
<selectKey keyProperty="seq" resultClass="int">
SELECT
result_seq.nextval FROM dual
</selectKey>
INSERT INTO request (
seq,
-- insert 내용은 생략--
)
</insert>
이렇게 <selectKey>를 설정하면 return 값으로 받을 수 있다.
(seq 값을 return)
int idx =sqlMapClientTemplate.insert("user.insertRequest", request_map);
https://hee-kkk.tistory.com/16
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
반응형
'프로젝트 경험' 카테고리의 다른 글
[Eclipse] 프로젝트 내•외부에 jar 추가 (0) | 2024.08.06 |
---|---|
[HTML] textarea 출력시 공백과 개행 처리 (0) | 2024.06.26 |
SVN 프로젝트 merge 충돌 (0) | 2023.07.09 |
IP주소 찾는법 (0) | 2023.06.04 |
자바 프로젝트 SVN 연동 (0) | 2023.06.04 |