MyBatis는 Java 언어를 사용하여 데이터베이스와 상호 작용하는 데 사용되는 ORM(Object-Relational Mapping) 프레임워크입니다. MyBatis XML 매핑 파일은 데이터베이스 테이블과 SQL 문을 매핑하고 MyBatis가 데이터베이스와 상호 작용할 수 있도록 돕는 방법입니다. 이 문서에서는 MyBatis XML 매핑 파일을 작성하는 방법에 대해 다루겠습니다.
1. MyBatis XML 매핑 파일의 기본 구조
MyBatis XML 매핑 파일은 데이터베이스 테이블과 SQL 문을 매핑하는 데 사용됩니다. 이 파일은 일반적으로 아래와 같은 구조를 가지고 있습니다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper">
<!-- SQL 문과 데이터베이스 테이블을 매핑하는 구문 -->
</mapper>
위의 코드에서 mapper
엘리먼트의 namespace
속성은 매핑 파일의 네임스페이스를 지정합니다.
2. 데이터베이스 테이블과 SQL 문의 매핑
MyBatis XML 매핑 파일에서는 각각의 SQL 문에 대해 select
, insert
, update
, delete
등의 액션을 명시하여 데이터베이스 테이블과 SQL 문을 매핑합니다. 아래는 간단한 예제입니다.
<mapper namespace="com.example.mapper">
<select id="selectUserById" resultType="com.example.User">
SELECT id, username, email
FROM user
WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO user (id, username, email)
VALUES (#{id}, #{username}, #{email})
</insert>
</mapper>
위의 코드에서 select
, insert
엘리먼트는 각각 selectUserById
, insertUser
라는 고유한 ID를 갖고 있어서 식별됩니다. resultType
, parameterType
속성은 각각 SELECT 문의 반환 결과 형식과 INSERT 문의 매개변수 형식을 지정합니다.
3. 동적 SQL 사용
때로는 동적 SQL이 필요할 수 있는데, MyBatis에서는 이에 대한 지원을 제공합니다. 동적 SQL을 사용하면 다양한 조건에 따라 SQL문을 동적으로 생성할 수 있습니다.
<mapper namespace="com.example.mapper">
<select id="selectUsers" resultType="com.example.User">
SELECT id, username, email
FROM user
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="email != null">
AND email = #{email}
</if>
</where>
</select>
</mapper>
위의 코드에서 <if>
엘리먼트를 사용하여 동적으로 WHERE 절을 생성하는 예제를 보여줍니다.
이것으로 MyBatis XML 매핑 파일 작성 방법에 대한 간략한 소개를 마치겠습니다. MyBatis를 사용하여 데이터베이스와 상호 작용하기 위해 보다 복잡한 매핑 및 SQL 튜닝을 하기 위해서는 MyBatis의 문서 및 사용 예제들을 참고하는 것이 좋습니다.
참고자료: