티스토리 뷰

728x90
iBatis를 이용해서 DB의 자료를 가져올때 DB Table의 컬럼명과 자바빈 클래스의 변수명을 맞춰주면
자동으로 데이터를 입력시켜 주지만 DB Table과 변수명이 다를 경우도 있다

[SqlMap XML]

<typeAlias alias="ARTICLE" type="Struts_MVC.BoardBean" />

<select id="ALL_ARTICLES" resultClass="ARTICLE">
        SELECT * FROM article_model2 ORDER BY article_number DESC
</select>


resultClass 속성을 사용해서 BoardBean 클래스를 결과값으로 받을 수 있도록 지정해 준다

 

[BoardBean.java]

public class BoardBean {
int articleNumber;
String id;
String title;
String content;
String password;
int hitNumber;
int depth;
String writeDate;
String fileName;
        .... Getter / Setter 생략 .... 
}


[DB Table]


id, title, content, depth 는 DB 테이블의 컬럼명과 동일하므로 값을 자동으로 받아오지만
나머지 것들은 이름이 달라서 값을 가져오지 못한다


이런 경우에 resultMap으로 컬럼명과 변수명을 직접 지정해 줄 수 있다

<typeAlias alias="ARTICLE" type="Struts_MVC.BoardBean" />

<resultMap id="bbsResult" class="ARTICLE">
<result property="articleNumber" column="article_number" />
<result property="id" column="id" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="password" column="password" />
<result property="hitNumber" column="hit_number" />
<result property="depth" column="depth" />
<result property="writeDate" column="write_date" />
<result property="fileName" column="file_name" />
</resultMap>

<select id="ALL_ARTICLES" resultClass="ARTICLE" resultMap="bbsResult">
SELECT * FROM article_model2 ORDER BY article_number DESC
</select>
 


이렇게 하나씩 대입되는 이름들을 맞춰주면 데이터를 잘 받아온다
주의할 점은 이름이 다른 것들만 써주는 것이 아니라 써주려면 전부 다 써줘야 한다는 것이다