BLOG ARTICLE 디비컬럼 자바빈 | 1 ARTICLE FOUND

  1. 2011.08.23 [iBATIS] DB 에서 자료 읽어올 때, 자바빈과 컬럼명이 다른 경우 Mapping 시키기


DB 에서 자료 긁어올 때, 매핑시킬 자바빈 변수명과, 디비의 컬럼명이 다른경우가 종종 있다.

이럴때는 resulMap 을 이용하여 정의해주면 된다. 

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

<sqlMap>
<!-- Struts_BBS.ItemBean 클래스를 alias 속성을 줘서 artcle 이라는 이름으로 쓰겠다고 정의 -->
<typeAlias alias="article" type="Struts_BBS.ItemBean"/>
<resultMap id="getContent" class="article">                                                                                     바빈


    <result property="article_num" column="article_num"/>

<result property="id" column="id"/>

<result property="title" column="title"/>
<result property="body" column="body"/>


<result property="password" column="password"/>
<result property="count" column="hit"/>
<result property="depth" column="depth"/>
<result property="fileName" column="fileName"/>
<result property="write_date" column="write_date"/>
</resultMap>
 
</sqlMap>

컬럼명은 "hit" 이고, 자바빈의 변수명은 "count" 이다.



그렇기 때문에 그냥 클래스를 지정하고 resultClass="article" 이라고 해버리면 

자바빈의 count 변수에 hit 이 당연히 매핑되지 않고, 기본값인 '0' 이 들어간다.


그렇기 때문에 저런식으로 디비컬럼명과, 자바빈 변수명을 매핑시켜주는 작업을 해주면 

편하다.

resultMap 속성에  위에서 지정한 resultMap 아이디를 쓰면 그놈이 리절트값이 된다.

<select id="Allarticles" parameterClass="int" resultMap="getContent">

<include refid="select-all-index"/>

WHERE rnum BETWEEN #index#+1 AND #index# + 10

 

</select>





YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST