<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.User">
<!-- 전체 select의 경우 파라미터 타입이 필요없다. -->
<select id="selectList" resultType="dto.User">
SELECT user_no, user_name FROM user
</select>
<!-- 직접 INSERT -->
<insert id="insert" parameterType="dto.User">
INSERT INTO USER(user_no, user_name)
VALUES ( user_seq.nextval, '홍길동' )
</insert>
<!-- 파라미터로 INSERT-->
<insert id="insertValue" parameterType="dto.User">
INSERT INTO USER(user_no, user_name)
VALUES ( user_seq.nextval, ${user_name} )
</insert>
<update id="update" parameterType="dto.User">
UPDATE user SET user_name = ${user_name} WHERE user_no = #{user_no}
</update>
</mapper>
- 파라미터가 있는 경우 ${DTO 멤버필드 이름} 으로 작성한다.
- JDBC에서는 파라미터를 ?(물음표)로 표시하고 setter 메소드를 통해 설정해주었다.
ps.setInt(1, user.getUser_no));
- Mybatis에서는 물음표를 쓰지 않고 #{프로퍼티}로 설정한다.
- INSERT, UPDATE, DELETE는 resultType이 설정되지 않는다.
- 그래도 Dao에서 반환타입을 int로 설정해도 상관없다.