본문 바로가기
프로그래밍언어/패턴, 알고리즘, 프로토콜

STRUTS2+iBatis 계층형 게시판 만들기 (2)

by plog 2009. 12. 14.

2. 데이터 베이스 맵핑

iBatis와 Eclispse 설정은 개인 부담으로 넘기고 맵핑 파일 설명을 하겠습니다.

- JAVA 클래스 변수와 DB 컬럼을 1:1 맵핑 구문
<resultMap id="retBoardMaster" class="classBoardMaster" >
   <result property = "boardNu" column="BOARD_NU"></result>
   <result property = "contentNu" column="CONTENT_NU"></result>
   <result property = "title" column="TITLE"></result>
   <result property = "contents" column="CONTENTS"></result>
   <result property = "writeDt" column="WRITE_DT"></result> 
   <result property = "adjustDt" column="ADJUST_DT"></result>
   <result property = "userId" column="USER_ID"></result>
   <result property = "writer" column="WRITER"></result>
   <result property = "result" column="RESULT"></result>
   <result property = "kind" column="KIND"></result>
   <result property = "depthNu" column="DEPTH_NU"></result> 
   <result property = "orderNu" column="ORDER_NU"></result>
   <result property = "stepNu" column="STEP_NU"></result> 
   <result property = "counts" column="COUNTS"></result> 
</resultMap>

- 프로시저에서 입력되어질 인자 값 맵핑 구문
<parameterMap id="procParam"  class="java.util.Map">
    <parameter property="currentpage"  jdbcType="varchar" mode="IN"/>        
    <parameter property="pagesize"  jdbcType="varchar" mode="IN"/>
    <parameter property="boardnu"  jdbcType="varchar" mode="IN"/>
</parameterMap>  
  
- 클래스 파일에서 parameterMap 형식의 인자 값을 받는다. 리터은 클래스 객체를 맵핑시킨 retBoardMaster 이다.
<procedure id="selectlist" parameterMap="procParam" resultMap="retBoardMaster">
     { call PROC_SDMS_S_BOARDLIST (?,?,?) }
</procedure>

-  프로시저 구문
ALTER proc [dbo].[PROC_SDMS_S_BOARDLIST]
   @currentpage int,  // 현재 페이지
   @pagesize int,      // 페이지 사이즈
   @boardnu int        // 보드 ID
as

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET NOCOUNT ON

select top(@pagesize) *
from
(
    select row_number() over (order  by ORDER_NU desc,STEP_NU asc) as rowno,*
    from BOARD_MASTER where BOARD_NU = @boardnu
)a
where a.rowno >(@currentpage-1)*@pagesize

윗 프로시저는 표현할 부분문 select 실행하여 넘겨준다.

댓글