ibatis에서 columnName을 명시하지 않은 경우
신입사원 코드 리뷰를 하는데 이상한 부분이 있어서 찾아본 내용을 적어둡니다.
1 2 3 4 5 6 7 8 9 10 11 |
<result property="goodsId"/> ... </resultMap> <select id="selectGoods" resultMap="Goods"> SELECT goodsid, ... FROM goods </select> |
위와 같은 코드에서 resultMap 속성에 column명이 명시되어 있지 않은데, 정상적으로 동작한다? 전체 소스는 생략하고 핵심만 쏙쏙 뽑아서 공유합니다. ibatis입니다.
1 2 3 4 5 |
if (columnName == null) { value = typeHandler.getResult(rs, columnIndex); } else { value = typeHandler.getResult(rs, columnName); } |
columnName이 없는 경우 columnIndex 값을 활용하게 되어 있습니다.
1 2 3 4 5 6 |
if (columnIndex != null) { mapping.setColumnIndex(columnIndex.intValue()); } else { resultMappingIndex++; mapping.setColumnIndex(resultMappingIndex); } |