반응형
Notice
Recent Posts
Recent Comments
IT 일기장
[MyBatis] separator UNION ALL 본문
반응형
어느 한 프로젝트에서 사이트별로 인기검색어 목록이 떠야했는데..
기존에 구현했던 다른 프로젝트를 소스를 갖고왔으나
"서로 다른 타입에 담겨진 Parameter들을 DB에 저장하려면 어떻게 해야되지?" 라는 난관에 부딪혔다
방법은 다음과 같이 정리했다
- list에 담아서 추가한 후 mybatis에서 foreach문을 돌린다.
- map에 담아서 추가한 후 mybatis에서 foreach문을 돌린다.
- 각각 String으로 받아서 foreach문을 돌린다.
이 3가지 방법은 구분값이 , 였을때 했던 방법들이다. 역시나 결과는 오류..
방법이 없나 싶었을 때, Mapper에 @Param Annotation을 붙이고 String으로 받되,
구분값을 UNION ALL로 하는 방법을 찾았다.
원리는 가상 테이블 DUAL에 아래 쿼리처럼 UNION ALL로 이어서 INSERT를 하는것이다..
mngrMainServiceImpl.java
public String searchkeyProc(HashMap<String, Object> paramMap,
ModelMap model, HttpServletRequest request, HttpServletResponse response, String returnPage){
String siteCode = CommUtil.getManagerSiteCode(request);
String usrPopWord = (String[])map.get("usrPopWord");
mngrMainMapper.DeleteUserPopularWord();
mngrMainMapper.InsertUserPopularWord(siteCode, usrPopWord);
return returnPage;
}
Main_SQL.xml
<insert id="InsertUserPopularWord" parameterType="string">
/*InsertUserPopularWord*/
INSERT INTO t_user_popular_word
(
site_code,
user_popw_word,
user_popw_date,
user_popw_order
)
<foreach collection="usrPopWord" item="userPopWord" index="index" separator="UNION ALL">
SELECT
#{siteCode},
#{usrPopWord},
SYSDATE,
#{index}+1
FROM DUAL
</foreach>
</insert>
반응형
'프로그래밍 언어 > XML' 카테고리의 다른 글
[XML] tld와 java tag class를 활용한 동적 html 생성 (0) | 2024.11.18 |
---|---|
[XML] 요소 유형 "Context"은(는) 짝이 맞는 종료 태그 "</Context>"(으)로 종료되어야 합니다. (0) | 2022.01.12 |
[XML] iBatis 자동 완성 기능 설정 (0) | 2021.12.10 |
[XML] egovframework 메모리 용량 조절 (0) | 2021.12.10 |
[MyBatis] association tag 활용 (0) | 2021.12.07 |
Comments