<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 |
댓글