IT/development

[mybatis] mybatis 배열 저장(feat. foreach)

알 수 없는 사용자 2022. 11. 21.

[mybatis] mybatis 배열 저장(feat. foreach)
[mybatis] mybatis 배열 저장(feat. foreach)

위와 같이 insert를 1개 이상 하는 로직을 만들게 되었고 미래의 내가 보기 위해 기록한다. 😄

클라이언트에서 배열로 값을 받아서 DB에 저장하는 기능이 필요했다.

참고로 mysql과 Oracle은 문법이 다르다.

Oracle은 아직 안해봐서 그건 나중에 알아보겠다.

 

Controller

@RequestParam(value = "변수명[]") String[] avengers 이런식으로 받음

@PostMapping("")
public ResponseEntity<?> createArray(
@RequestParam(value = "avengers[]") String[] avengers
) throws Exception{
Service.insertAvengers(avengers);
생략...

Service

public void insertAvengers(String[] avengers) throws Exception {
		Mapper.insertAvengers(avengers);
	}

Mapper

public void insertAvengers(String[] avengers);

xml

배열로 넘겼으면 반드시 collection을  "array"로 할 것

<insert id="insertAvengers">
    INSERT INTO avengers
    (
        hero_name,
        reg_date
    )
    VALUES
    <foreach collection="array" item="item" separator=",">
    (
        #{item},
        NOW()
    )
    </foreach>
</insert>

개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.

틀린 점 있을 경우 댓글 부탁드립니다.

 

[mybatis] mybatis 동적쿼리(feat. <where></where>)

목차 mybatis Dynamic SQL 😃 계속 실수 했던 동적쿼리이다. 오늘 나는 이걸 이해 했지만 미래의 넌 또 까먹을 수 있으니 여기에 메모해 둔다. 동적 WHERE 회원 테이블에서 회원이름과 이메일의 존재에...

yaga.tistory.com

 

[mybatis] foreach parameterType hashmap 예제

미래의 나를 위해 기록한다. 😃mybatis에서 foreach를 돌릴 때 list는 이제 좀 익숙해 졌는데 map은 아직 좀 서툰 느낌이 들어 기록한다.예제는 동적으로 insert문의 내용과 SELECT문의 내용을 채우는 예...

yaga.tistory.com

 

[mybatis] mybatis parameter 여러개 전달

목차예를 들어 String타입의 "status"와 Long타입의 no, 2개의 parameter값을 받아서 테이블 업데이트 하려는 로직이 있을 시 VO째로 넘기기엔 뭔가 비효율적이고 다른사람이 코드를 봤을 때도 직관적이...

yaga.tistory.com