티스토리 뷰
하.. 급하게 하는 바람에 정신 없었다. 정리를 해보면.. 결론은 자바에서 마이바티스 call을 한 결과는 null 이 없다고 한다. 제미나이 질의, 답변 결과이다.
자바 mybatis List<HashMap<String,Object>> list 가 값이 없으면 null 이야?
아니요, 마이바티스(MyBatis)에서 조회 결과가 없으면 List 객체 자체는 null이 아니라 비어 있는 리스트(size() == 0 또는 isEmpty() == true)로 반환되는 것이 기본입니다.
리스트와 내부 데이터 상태리스트 객체 자체: 조회 결과가 없어도 마이바티스가 빈 리스트 객체([])를 만들어 주므로 보통 null이 아닙니다.
리스트 내부의 맵(HashMap): 데이터가 아예 없으면 리스트 크기가 0이며, 데이터는 있으나 특정 컬럼 값이 null인 경우 마이바티스 설정에 따라 맵에서 해당 키(Key) 자체가 생략될 수 있습니다.
체크해야 할 점Null 체크만 하면 위험: list == null만 확인하면 빈 리스트일 때 IndexOutOfBoundsException 등이 날 수 있으므로 list.isEmpty()를 함께 써야 안전합니다.
설정에 따른 차이: 만약 null인지 확인하고 싶다면 list == null || list.isEmpty() 형태나 org.springframework.util.CollectionUtils.isEmpty(list)를 사용하는 것이 좋습니다.
그럼 for(HashMap<String,Object> map: list) 이렇게 쓰면 안전해?
네, 안전합니다. list가 빈 리스트(size == 0)일 때 이 향상된 for문(for-each)은 예외(Exception)를 발생시키지 않고 그냥 내부 코드를 실행하지 않은 채 안전하게 넘어갑니다.
'자바(Java)' 카테고리의 다른 글
- Total
- Today
- Yesterday
- 포인터
- 라이믹스
- esql
- C
- EC
- 오라클
- 파이썬
- 플러터
- 스크래핑
- php
- xe addon
- XE3
- xe애드온
- JDBC
- proc
- Python
- 이클립스
- 문자열
- XE
- C언어
- KG
- 라이믹스 입력폼
- 자바
- 자바 smtp
- ocajp
- 파싱
- 프로씨
- 인포믹스
- webix
- ocjap
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |

