본문 바로가기
Database/mybatis

[mybatis] mybatis는 map을 파라미터로 사용하는 기능 지원

by 평범한kiki 2023. 5. 3.

mybatis는 map을 파라미터로 사용하는 기능 지원.

파라미터 한두개로 dto 만들기 애매할때 쓰면 좋다.


@Param을 이용하면 해당 파라미터들이 Map에 저장되어 DTO를 따로 안만들어도 여러개 파라미터 전달.
매퍼에서 @Param에노테이션을 이용해서 파라미터를 지정하고 키를 저장한다.
SQL에서는 parameterType="map" 와 같은 형태로 사용한다.

 

- BoardMapper.java

import org.apache.ibatis.annotations.Param;
@Mapper
public interface BoardMapper {
 BoardFileDto selectBoardFile(@Param("boardIdx")int boardIdx, @Param("fileIdx")int fileIdx) throws Exception;
}

 

- sql-board.xml

<select id="selectBoardFile" parameterType="map"   resultType="BoardFileDto">
  <![CDATA[ 
    SELECT file_idx
         , board_idx
         , original_file_name
         , stored_file_path
         , FORMAT(ROUND(file_size/1024), 0) AS file_size
         , DATE_FORMAT(created_datetime, '%Y.%m.%d %H:%i:%s') AS created_datetime
         , creator_id
      FROM web_db.t_file tb
     WHERE board_idx = #{boardIdx}
       AND file_idx  = #{fileIdx}
       AND deleted_yn = 'N'
  ]]>		  
</select>