학습 목표
- Mapper 인터페이스 ↔ XML 의 핵심 개념을 안다
- namespace + id 로 매칭 의 동작을 안다
- Mapper 인터페이스 메서드와 XML 의 SQL 이 어떻게 짝지어지는지 안다.
1. 문제
인터페이스와 XML 두 파일이 어떻게 연결되는지 마법 같다.
2. 새 도구
namespace + id 로 매칭: XML 의 namespace = 인터페이스의 풀 클래스명. 각 메서드 = 같은 id 의 SQL.
3. 코드 — BoardMapper v5 형태
// com/smhrd/mapper/BoardMapper.java
package com.smhrd.mapper;
@Mapper
public interface BoardMapper {
List<Board> selectList();
Board selectOne(int num);
void insert(Board b);
}
<!-- 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. 정리
- namespace = 인터페이스의 풀 클래스명
- id = 메서드 이름과 정확히 일치
- 둘 중 하나만 어긋나면 동작 안 함
5. Before / After
전 차시
인터페이스와 XML 두 파일이 어떻게 연결되는지 마법 같다.
이번 차시
Mapper 인터페이스 메서드와 XML 의 SQL 이 어떻게 짝지어지는지 안다.
학습 확인 체크리스트
- namespace = 인터페이스의 풀 클래스명
- id = 메서드 이름과 정확히 일치
- 둘 중 하나만 어긋나면 동작 안 함