티스토리 뷰


Mapper.java  에서 interface로 xml로 들어갈 쿼리의 이름을 선언해준다는 것을 얼마전에 알게 되었다.

select 문을 실행할 때 한개의 값만 가져오는것과 여러개의 값을 가져오는 것 또한 다르다는 것을 알게되었다.


Mapper.java 에 email을 가져오는 쿼리의 이름을 interface파일에 선언해주었다.

1
String selectEmailAddress();
cs


가져오는 컬럼이 한개일 때 아래와 같이 select 문을 작성한다.

Mapper.xml

1
2
3
<select id="selectEmailAddress" resultType="String">
    select email from tb_admins
</select>
cs



그러나 가져오는 컬럼이 여러개일 때에는 resultMap으로 가져오는 컬럼에 대한 VO의 값(?)을 맞춰주어야 하는것 같다.

AdminVO 를 리턴타입으로 한 select문의 이름을 선언하였다.

1
Admin selectSendEmailInfo(); 
cs


xml에서 여러개의 컬럼을 가져올때는 resultMap을 선언해서 type을 리턴타입과 맞춰주고

select 문에서의 resultMap을 선언한 resultMap의 id로 지정해준다.

Mapper.xml

1
2
3
4
5
6
7
8
9
<resultMap id="emailResultMap" type="jdAdmin.admin.data.entity.Admin">
<result column="email" property="email" jdbcType="VARCHAR"/>
<result column="last_email_dt" property="lastEmailDt" jdbcType="TIMESTAMP"/>
</resultMap>
       
<select id="selectSendEmailInfo" resultMap="emailResultMap">
    select email, last_email_dt
    from jdn.tb_admins
</select>
cs




댓글