일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프론트엔드
- axios
- fetch
- maven
- docker
- Vue.js
- 트랜잭션
- VUE
- git push
- 비동기통신
- github
- RequestParam
- GIT
- 개발자
- aop
- PathVariable
- 백엔드
- gradle
- RequestBody
- java version
- vue life cycle
- Spring AOP
- 빌드
- Java
- 도커
- transaction
- 자바 버전
Archives
- Today
- Total
미소의 세상
Mybatis forEach 사용 예시 본문
1. Mapper 파라미터가 List 일 경우
@Mapper
void insertBoardList(List<Board> boardList) throws Exception;
SQL Mapper
<insert id="insertBoard" parameterType="java.util.List">
INSERT INTO T_BOARD
(
TITLE
, CONTENTS
, DISPLAY_YN
, EMAIL
, REG_ID
, REG_DATE
)
VALUES
(
<foreach collection="list" item="item" separator=",">
#{item.title}
, #{item.contents}
, #{item.displayYn}
, #{item.email}
, #{item.regId}
, NOW()
</foreach>
)
</insert>
collection="list" item="item" 는 defualt 이다.
2. Mapper 파라미터가 Model객체 내 List를 foreach로 활용 할 경우
Board.java (참고용)
@Data
public class Board implements Serializable {
public Integer boardIdx;
//...생략...
List<BoardReply> boardReplyList;
}
@Mapper
BoardReply selectBoardReply(Board board) throws Exception;
<select id="selectBoardReply" parameterType="BoardSearch" resultType="BoardReply">
SELECT
BOARD_IDX
, REPLY_IDX
, TITLE
, CONTENTS
FROM
T_BOARD_REPLY
WHERE
BOARD_IDX = #{boardIdx}
AND REPLY_IDX NOT IN (
<foreach collection="boardReplyList" item="item" separator=",">
#{item.replyIdx}
</foreach> )
</select>
collection Id 값과 parameterType 객체 내 필드명을 동일하게 해야함
3. Mapper 파라미터가 Map 일 경우
ServiceImpl.java (참고용)
@Override
public void insertEventGoodsMng(Map<String, Object> dbParams) {
// dbParams={eventIdx=113, cate=24, ...}
List<Map<String, Object>> goodsList = boardMapper.selectGoodsList(dbParams);
dbParams.put("goodsList", goodsList);
eventMapper.insertEventGoodsMng(dbParams);
}
<insert id="insertEventGoodsMng" parameterType="java.util.HashMap">
<if test="goodsList.size != 0">
INSERT INTO EVENT_GOODS_MNG
(
EVENT_GOODS_MNG_IDX
, GOODS_IDX
)
VALUES
<foreach collection="goodsList" item="item" separator=",">
(
#{eventIdx}
, #{item.goodsIdx}
)
</foreach>
</if>
</insert>
'SQL' 카테고리의 다른 글
트랜잭션 쉽게 이해하기 (0) | 2022.10.24 |
---|---|
오라클 CASE WHEN 예제 (0) | 2022.06.03 |
Mybatis resultMap 사용하는 법 (0) | 2022.06.03 |
프로시저의 장단점 (0) | 2022.05.11 |
Mybatis #, $ 차이 (0) | 2022.05.04 |
Comments