[MyBatis] mapper xml 작성하기

·2022년 10월 18일

매퍼 초기 설정


mybatis mapper로 세팅

<!DOCTYPE mapper
	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
	"https://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="example">
...
</mapper>

가져올 DB 설정하기

<sql id="tableMyData">MY_DB_NAME</sql>

column 정의

<sql id="columnsMyData">
	EXAMPLE_ID, EXAMPLE_NAME, EXAMPLE_DATE,
    EXAMPLE_CODE, SELECT_YN
</sql>

 

resultMap


resultMap은 데이터베이스 결과 데이터를 객체에 로드하는 방법을 정의하는 엘리먼트이다. 복잡한 구문에서 관계 서술을 위해 사용될 수 있는 강력한 엘리먼트지만, 여기서는 resultMap을 활용한 구문 매핑 대신 간단한 명칭 매핑만을 알아본다.
column과 property의 이름이 다른 경우, 데이터베이스 별칭을 사용하는 대신 명시적으로 resultMap을 선언하여 사용할 수 있다.

<resultMap id="exampleResult" type="example">
  	<id property="exampleId" column="EXAMPLE_ID" />
  	<result property="name" column="EXAMPLE_NAME" />
    <result property="date" column="EXAMPLE_DATE" />
	<result property="code" column="EXAMPLE_CODE" />
</resultMap>

위와 같이 프로퍼티명과 DB의 칼럼명을 지정해 준다.

 

select


<select id="selectName" parameterType="string" resultType="string">
	SELECT <include refid="columnsMyData" />
    FROM <include refid="tableMyData" />
    WHERE EXAMPLE_ID = #{exmapleId}
	AND SELECT_YN = TRUE
</select>
<select id="selectASet" parameterType="java.util.HashMap" resultMap="exampleResult">
	SELECT * FROM EXAMPLE_NAME
 	WHERE EXAMPLE_ID = #{exmapleId}
</select>

returnType의 경우에는 다양한 타입이 올 수 있다.
이때 primitive type의 경우에는 _int 와 같이 적어야 int형으로 받을 수 있다.
적지 않을 경우, Wrapper class인 Integer 타입이 반환된다.

 

insert


<insert id="insertData" parameterType="exampleData">
	INSERT INTO <include refid="tableMyData"/>
    (<include refid="columnsMyData" />)
    VALUES
    (#{exampleId}, #{name}, NOW(), #{code}, FALSE)
</insert>

 

update


<update id="updateData" parameterType="exampleData">
	UNDATE <include refid="tableMyData"/>
    SET EXAMPLE_NAME = #{name},
    EXAMPLE_DATE = NOW(),
    EXAMPLE_CODE = #{code}
    WHERE EXAMPLE_ID = #{exampleId}
</update>

 

delete


<delete id="deleteData" parameterType="exampleData">
	DELETE FROM <include refid="tableMyData"/>
    WHERE EXAMPLE_ID = #{exampleId}
</delete>

 

 


MyBatis 공식 문서(ko)도 확인해 보세요🤷‍♀️

0개의 댓글