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
- USB
- 디자이어
- 삼성 오디세이
- SQL
- 이클립스
- Desire
- 초대장
- HTML
- FTP
- mybatis
- HD2
- jeus
- SWFUpload
- jsp
- 오라클
- 자바
- oracle
- tomcat
- eclipse
- ant
- javascript
- 모토로이
- htc
- 구글
- C34G55T
- DBCP
- Spring
- Java
- 삼성 오디세이 G5 C34G55T
- jvm
Archives
- Today
- Total
앙되요
[mybatis] mapper.xml에서 parameterType 여러개(2개 이상) 주는 방법 본문
Spring & Maven & Mybatis
[mybatis] mapper.xml에서 parameterType 여러개(2개 이상) 주는 방법
앙되요 2011. 12. 27. 11:24쿼리를 작성하다보면 파라미터를 여러개를 줄 경우가 있다.
쿼리를 작성하는 mapper.xml에서 여러개의 변수를 받아 해결해야하는데
예제를 봐도 여기 저기를 찾아봐도 하나만 쓰는 예제만 있지 여러개는 없다.
그래서 어떻게 해결해야하나 고민하다 발견!!!
고생했다 ㅜㅜ
밑에 mapper xml에서 하던데로 parameterType을 hashmap으로 설정해 두고
<select id="selectUser" parameterType="hashmap" resultType="hashmap">
쿼리를 작성하는 mapper.xml에서 여러개의 변수를 받아 해결해야하는데
예제를 봐도 여기 저기를 찾아봐도 하나만 쓰는 예제만 있지 여러개는 없다.
그래서 어떻게 해결해야하나 고민하다 발견!!!
고생했다 ㅜㅜ
자 Mapper interface 에서 저렇게 map으로 구성된 변수 2개를 넣어주고.
public interface UserMapper {
public interface UserMapper {
List<HashMap<?,?>> selectUser(Map<String, String> h, Map<String, String> h2);
}
밑에 mapper xml에서 하던데로 parameterType을 hashmap으로 설정해 두고
<select id="selectUser" parameterType="hashmap" resultType="hashmap">
select user_id as userId
, user_nm as userNm
from t_user_m
where user_id = #{0.a}
and user_id = #{1.b}
</select>
#{0.a} == > 첫번째 hashmap의 값 호출
#{1.b} == > 두번째 hashmap의 값 호출
이렇게 하니 제대로 받아진다.!! 유레카!!
아직까지 확인된 방법은 같은 형식으로 된 것만 된다는 것.
또다른 방법의 한가지.
VO객체를 만든다
그리고 VO 객체에 hashmap을 받을수 있게 2개를 만든다.
그리고 거기다가 hashmap 2개를 집어 넣는다
xml에서 hashmap id.key 하면 읽어진다.
vo
#{0.a} == > 첫번째 hashmap의 값 호출
#{1.b} == > 두번째 hashmap의 값 호출
이렇게 하니 제대로 받아진다.!! 유레카!!
아직까지 확인된 방법은 같은 형식으로 된 것만 된다는 것.
또다른 방법의 한가지.
VO객체를 만든다
그리고 VO 객체에 hashmap을 받을수 있게 2개를 만든다.
그리고 거기다가 hashmap 2개를 집어 넣는다
xml에서 hashmap id.key 하면 읽어진다.
vo
private Map<String, String> h;
private Map<String, String> h2;
public Map<String, String> getH() {
return h;
}
public void setH(Map<String, String> h) {
this.h = h;
}
public Map<String, String> getH2() {
return h2;
}
public void setH2(Map<String, String> h2) {
this.h2 = h2;
}
service
map
public List<HashMap<?, ?>> selectUser() {
Map<String, String> h = new HashMap<String, String>();
h.put("a", "admin");
Map<String, String> h2 = new HashMap<String, String>();
h2.put("b", "admin2");
UserVO vo = new UserVO();
vo.setH(h);
vo.setH2(h2);
return userMapper.selectUser(vo);
} map
<select id="selectUser" parameterType="user" resultType="hashmap">
select user_id as userId
, user_nm as userNm
from t_user_m
where 1=1
<choose>
<when test="h.a != null">
and user_id = #{h.a}
</when>
<otherwise>
</otherwise>
</choose>
</select>