반응형
mapper
mapper파일 내용 전체를 감싸줌
<mapper namespace="mapper파일의고유별칭"></mapper>
DML문(insert, update, delete)
- parameterType 속성은 전달받을 값이 없으면 생략가능(속성값 공식 사이트 참고, 잘못된 속성이여도 자동수정해주긴함)
- update/delete도 insert와 동일함
- 실행결과가 처리된 행의 개수(int)이기 때문에 resultType 또는 resultMap에 대한 속성 불필요!
<insert id="sql문 식별자ID" parameterType="전달받을자바타입(풀클래스명) 또는 별칭">
쿼리문
</insert>
select문
- parameterType 속성은 전달받을 값이 없으면 생략가능
- 결과값에 대한 타입을 반드시 지정, resultType(자바 자료형) 또는 resultMap(vo클래스 타입)
* 기존에 사용하던 ?(위치홀더) 대신 #{필드명 또는 변수명 또는 map의 키값}으로 작성
<select id="sql문 식별자ID" parameterType="전달받을자바타입(풀클래스명) 또는 별칭"
resultType="조회결과 반환할 자바타입" 또는 resultMap="조회결과를 뽑아서 매핑할 resultMap의 id">
쿼리문
</select>
resultMap
마이바티스의 핵심 기능
ResultSet으로부터 조회된 컬럼값을 하나씩 뽑아 내가 지정한 VO 객체의 각 필드에 담는 역할
ex) 기존 JDBC코드 적용시 member.setUserId(rset.getString("USER_ID"));
<resultMap id="식별자ID" type="조회된 결과를 담아 반환할 VO객체의 타입(풀클래스명) 또는 별칭">
<result column="조회결과를 뽑을 DB컬럼명" property="결과를 담을 필드명"/>
<result column="조회결과를 뽑을 DB컬럼명" property="결과를 담을 필드명"/>
...
...
</resultMap>
<?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="memberMapper">
<resultMap type="member" id="memberResultSet">
<result column="USER_NO" property="userNo"/>
<result column="USER_ID" property="userId"/>
<result column="USER_PWD" property="userPwd"/>
<result column="USER_NAME" property="userName"/>
<result column="EMAIL" property="email"/>
<result column="BIRTHDAY" property="birthday"/>
<result column="GENDER" property="gender"/>
<result column="PHONE" property="phone"/>
<result column="ADDRESS" property="address"/>
<result column="ENROLL_DATE" property="enrollDate"/>
<result column="MODIFY_DATE" property="modifyDate"/>
<result column="STATUS" property="status"/>
</resultMap>
<select id="loginMember" resultMap="memberResultSet" parameterType="member">
SELECT *
FROM MEMBER
WHERE USER_ID = #{userId}
AND USER_PWD = #{userPwd}
AND STATUS='Y'
</select>
<insert id="insertMember" parameterType="member">
INSERT
INTO MEMBER (
USER_NO,
USER_ID,
USER_PWD,
USER_NAME,
EMAIL,
BIRTHDAY,
GENDER,
PHONE,
ADDRESS
)
VALUES(
SEQ_UNO.NEXTVAL,
#{userId},
#{userPwd},
#{userName},
#{email},
#{birthday},
#{gender},
#{phone},
#{address}
)
</insert>
</mapper>
반응형
'MyBatis' 카테고리의 다른 글
[MyBatis] 개요 및 다운로드 (0) | 2023.03.27 |
---|---|
[MyBatis] 회원가입 기능 구현 (0) | 2022.06.15 |
[MyBatis] SqlSession 객체 정보 Template 클래스 생성 (0) | 2022.06.14 |
[MyBatis] XML설정파일 mybatis-config.xml (0) | 2022.06.14 |