티스토리 뷰

하.. 급하게 하는 바람에 정신 없었다. 정리를 해보면.. 결론은 자바에서 마이바티스 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)를 발생시키지 않고 그냥 내부 코드를 실행하지 않은 채 안전하게 넘어갑니다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/07   »
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
글 보관함