▣ PART · DB

Mapper 인터페이스 ↔ XML

데이터와 MyBatis — 읽기 자료

📍 지금 어디를 만지고 있나요?
브라우저
데이터와 MyBatis
DB

핵심 용어

namespaceMapper XML 파일의 식별자. 인터페이스 풀 클래스명과 일치.
id각 SQL 의 식별자. 인터페이스 메서드명과 일치.
resultType결과를 매핑할 자바 타입.

1. 문제

전 차시까지의 답답함

인터페이스와 XML 두 파일이 어떻게 연결되는지 마법 같다.

2. 새 도구

namespace + id 로 매칭

XML 의 namespace = 인터페이스의 풀 클래스명. 각 메서드 = 같은 id 의 SQL.

3. 코드 — BoardMapper v5 형태

// src/main/java/com/smhrd/mapper/BoardMapper.java
package com.smhrd.mapper;

@Mapper
public interface BoardMapper {
    List<Board> selectList();
    Board selectOne(int num);
    void insert(Board b);
}

<!-- src/main/resources/com/smhrd/mapper/BoardMapper.xml -->
<mapper namespace="com.smhrd.mapper.BoardMapper">
    <!-- ↑ 인터페이스와 같은 풀 경로 -->

    <select id="selectList" resultType="com.smhrd.domain.Board">
        SELECT num, title, writer, content
        FROM myboard ORDER BY num DESC
    </select>

    <select id="selectOne"
            parameterType="int"
            resultType="com.smhrd.domain.Board">
        SELECT num, title, writer, content
        FROM myboard WHERE num = #{num}
    </select>

    <insert id="insert" parameterType="com.smhrd.domain.Board">
        INSERT INTO myboard(title, writer, content)
        VALUES(#{title}, #{writer}, #{content})
    </insert>
</mapper>

4. 정리

5. Before / After

전 차시 끝

인터페이스와 XML 두 파일이 어떻게 연결되는지 마법 같다.

이번 차시 끝

Mapper 인터페이스 메서드와 XML 의 SQL 이 어떻게 짝지어지는지 안다.