Programming Language/Javascript, ...

[MyBatis] mapper.xml

Ma_Sand 2022. 7. 3. 21:52
반응형
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
<mapper namespace="">
    <!-- select문이 resultMap일 경우 -->
    <resultMap type="" id="">
        <result column="" property=""/>
    </resultMap>
    
    <select id="" parameterType="" resultType/resultMap="">
        select 구문
    </select>
    
    <insert id="" parameterType="">
        insert 구문
    </insert>
</mapper>

 

 

mapper

<mapper namespace="해당 mapper 파일의 별칭">

 

 

[DML문일 경우]

<insert id="각 sql문의 식별자" parameterType="전달받을 자바타입(풀 클래스명) 또는 별칭">

(<update/>, <delete/>도 동일하다.)

 

<select id="각sql문의 식별자" parameterType="전달받을 자바타입(풀 클래스명) 또는 별칭"
   resultType="조회결과를 반환하고자 하는 자바타입" 또는 resultMap="조회결과를 뽑아서 매핑할 resultMap의 id">

 

 - parameterType 속성: 전달받을 값이 없으면 생략 가능하다.

 - <select>는 resultType 또는 resultMap으로 결과값에 대한 타입을 반드시 지정해야 한다.

 - 실행 결과가 처리된 행의 개수(int 타입)이기 때문에 resultType/resultMap에 대한 속성이 필요하지 않다.

 - 기존에 사용하던 위치홀더가 아니라 #{필드명/변수명/map의값}으로 작성한다.

 

 

resultMap

ResultSet으로부터 조회된 컬럼값을 하나씩 뽑아 지정한 VO 객체에 각 필드를 담는 JDBC 코드를 줄여준다.

  ex) member.setMemberId(rset.getString("MEMBER_ID"));

 

<resultMap id="식별자" type="조회된 결과를 담아서 반환하고자 하는 vo 객체의 타입(풀 클래스명) 또는 별칭">
    <result column="조회결과를 뽑고자 하는 DB 컬럼명" property="해당 결과를 담고자하는 필드명"/>
    <result column="조회결과를 뽑고자 하는 DB 컬럼명" property="해당 결과를 담고자하는 필드명"/>
       .
       .
</resultMap>

 

반응형