본문 바로가기
JAVA/MyBatis

[Java] MyBatis xml 작성

by soy미니 2023. 9. 18.
<mapper namespace="project.service.mapper.MainMapper">
    <select id="getData"
            parameterType="project.service.model.MainDto"
            resultType="project.service.model.MainDaoDTO"><![CDATA[
        SELECT LESSON_TITLE AS title
        , LESSON_TEACHER AS teacher
        , LESSONE_PLACE AS place
        FROM ${DB_LESSON}
        WHERE STUDENT_NAME = #{S_NAME}
    ]]></select>
</mapper>

Mapper

- namespace : 여러 개의 SQL문을 패키지처럼 묶는다.

 

SQL 태그

- <sql> 태그를 제공

- 재사용 가능한 sql문을 미리 정의해 둘 수 있다.

<sql id="getBaseData">
		SELECT #{S_ID} AS L_ID,
		       F.L_NAME,
		       F.L_TEACHER,
		       F.L_PLACE,
		       F.L_TIME,
		       F.L_MAX
		FROM ${DB_LESSON}.FIRST_TYPE F
		WHERE F.L_ID = '11111'
		AND F.L_NAME NOT IN (
			SELECT L_NAME
			FROM ${DB_LESSON}.FIRST_TYPE
			WHERE L_ID = #{S_ID}
		)
</sql>
<select id="getBaseData"
		resultType="MainDto">
    SELECT COUNT(*)
	FROM ( <include refid="getBaseData" /> ) A
</select>

 

parameterType

- parameterType 에 지정된 값이 SQL문 입력 값으로 들어간다.

 

resultType

- SELECT 문 실행 결과를 담을 객체

 

resultMap

- SELECT 문 실행 결과를 담을 객체를 지정

<resultMap id="MainDaoDTO" type="project.service.model.MainDaoDto" >
    <result property="db_id" column="DB_LESSON"/>
    <result property="student_name" column="S_NAME"/>
</resultMap>

<select id="getData"
    parameterType="project.service.model.MainDto"
    resultMap="MainDaoDTO"><![CDATA[
    SELECT LESSON_TITLE AS title
    , LESSON_TEACHER AS teacher
    , LESSONE_PLACE AS place
    FROM ${DB_LESSON}
    WHERE STUDENT_NAME = #{S_NAME}
]]></select>

 

 

CDATA

- ![CDATA[쿼리문]] : 특수문자(< , >, &) 를 사용할 때 문자열과 태그를 구분해주기 위하여 사용

- <SELECT> <UPDATE> 등의 태그와 부등호(<, >) 를 컴퓨터가 구분하지 못함

'JAVA > MyBatis' 카테고리의 다른 글

[JAVA] Spring에서 Mybatis 연동  (0) 2021.09.24
[JAVA] MyBatis 시작하기 (with Delegation Pattern)  (0) 2021.09.23

댓글