MyBatis - SQL Mapper

my_mon·2022년 10월 20일
0
<?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로 설정해도 상관없다.
profile
기록하는 사람

0개의 댓글