[Mybatis] 매퍼 상속 개념과 예제
매퍼 상속은 MyBatis에서 매퍼 파일 간에 공통된 SQL 쿼리를 재사용하기 위한 방법입니다. 매퍼 상속을 사용하면 중복 코드를 줄이고 쿼리를 재사용할 수 있습니다. 아래는 매퍼 상속의 개념과 예제입니다.
- 부모 매퍼 (BaseMapper.xml):
<mapper namespace="BaseMapper">
<select id="selectAllBooks" resultType="Book">
SELECT * FROM books
</select>
</mapper>`
- 자식 매퍼 (BookMapper.xml):
<mapper namespace="BookMapper">
<include resource="BaseMapper.xml"/>
<!-- 자식 매퍼에 추가된 쿼리 -->
<select id="selectBooksByAuthor" resultType="Book">
SELECT * FROM books WHERE author = #{author}
</select>
</mapper>`
위의 예제에서 BaseMapper.xml
은 공통된 SQL 쿼리를 가지고 있는 부모 매퍼이며, BookMapper.xml
은 BaseMapper.xml
을 상속하고 부모 매퍼의 쿼리를 재사용하면서 필요한 쿼리를 추가한 자식 매퍼입니다.
자식 매퍼에서 <include>
태그를 사용하여 부모 매퍼의 쿼리를 포함하고 있습니다. 이렇게 하면 부모 매퍼에 있는 쿼리를 자식 매퍼에서도 사용할 수 있습니다.
이제 자식 매퍼에서는 부모 매퍼의 쿼리인 selectAllBooks
를 사용하면서 추가적으로 selectBooksByAuthor
라는 쿼리를 정의하고 있습니다.
이렇게 하면 공통된 쿼리를 부모 매퍼에 정의하고, 각각의 자식 매퍼에서 필요한 쿼리를 추가하여 코드의 재사용성을 높일 수 있습니다.