첫 블로그 글이 오늘 하루 삽질을 한 내용이다..😑
거창한 내용은 아니지만 누군가에게는 도움을 줄 수도 있을거라는 희망을 품고 글을 작성해본다.😳
😨 mybatis를 이용하여 select 해야하는데 넘어가는 파라미터가 Map<String, Object> 타입
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("option", optionList); /* optionList = List<String> */
paramMap.put("info", searchInfo); /* searchInfo객체에는 keyword 멤버변수가 존재 */
<select id="searchList" resultType="vo">
SELECT * FROM t_sample
WHERE type = 2
<if test="option.size != 0">
AND option NOT IN
<foreach collection="option" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="info.keyword != null and !info.keyword.equals('')">
AND name LIKE '%'||#{info.keyword}||'%'
</if>
</select>
<if test="option.size != 0">
<foreach collection="option" item="item" open="(" separator="," close=")">
<if test="info.keyword != null and !info.keyword.equals('')">
💡 mybatis는 파라미터가 클래스의 객체인 경우 해당 클래스의 getter 메서드에 대응되서 mapper 변수가 값을 획득한다. 또한, Map에 담아서 넘길 경우 Map객체의 Key값과 Mapper의 변수가 1:1로 대응되서 값이 전달되므로 이름을 꼭 맞춰야한다.
옵션 | 설명 |
---|---|
collection | 전달받은 인자값 |
index | 목록의 위치값 |
item | 전달받은 인자값을 다른 이름으로 재정의시 사용(foreach 구문에서 사용할 변수명) |
open | foreach 구문이 시작할 때 넣을 문자 |
close | foreach 구문이 끝날 때 넣을 문자 |
separator | 한번 이상 반복할때 구분자 |
~~~~
엄청 많지만 오늘보다 나은 내일의 내가 되기 위해 오늘의 나는 힘내봅니다😤
희망이 되어 주셔서 감사합니다...!!!!