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>