//쿼리결과가 다중컬럼, 다중로우일때.
원래는 컬럼에따라 VO를 생성해서 resultType을 해당 VO로 받았었다.(자동으로 List만들어주니깐!)
하지만 이제 VO생성하는 방법은 잘 안쓴다구 함....
이름 |
전화번호 |
주소 |
생년월일 |
황소희 |
111-111-111-11 |
우리집 |
031010 |
황소현 |
111-11-11 |
우리동네 |
931010 |
따라서 VO대신 Key와 Value값으로 받아야 함. ResultType을 Map으로 한다.
<select id="getMenu" resultType="Map">
select * from menu
where menu_view_yn = 'Y'
order by menu_order
</select>
결과가 단일로우면 Map으로 가져와서 사부작사부작 하면되지만
다중로우기 때문에 selectList메서드로 List로 받아온다.
하지만 슬프게도 selectList는 List<Object>만 return하기때문에...
Map을 하나씩 for문으로 받아서 캐스팅하여 사용한다.
@RequestMapping(value="/stepThree")
public void stepThree(Model model) {
List<Object>menues = sqlSessionTemplate.selectList("testmp.getMenu");
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
for(Object oj: menues) {
HashMap<String, String> menu = (HashMap<String, String>) oj;
list.add(menu);
}
}
여기서 의문.
Object를 넘기면 jstl에서 받아 쓸 수 있을까?
Model로 넘기기전에 ObjectList를 MapList로 변환해서 넘겨야 할까?
'Today I learned' 카테고리의 다른 글
Mybatis 동적쿼리작성 (0) | 2019.03.22 |
---|---|
Ajax 406 error (0) | 2019.03.21 |
체크박스나 라디오박스 value값은 주로 코드값으로 지정한다. (0) | 2019.03.21 |
VIew에서 파라미터를 전달할때 Controller에서 Map으로 넘기는 방법 (0) | 2019.03.21 |
Javascript 입력값 예외처리 (0) | 2019.03.20 |
댓글