본문 바로가기
▶ Back-End/DataBase

Mybatis Oracle Paging Query(더보기 기능)

by 오늘도 코딩 2021. 2. 3.
728x90
반응형

"더보기" 기능을 위해 페이징을 하는 경우 이와 같이 사용한다.

*고정된 개수로 조회하는 페이징

*자세한 설명 생략

 

 

▷ 조회 범위 계산

 

int page = 1;       // 현재 페이지 번호
int size = 10;      // 페이지당 조회 건수

int offset = (page - 1) * size; // OFFSET 값
int limit = size;  // 조회할 건수 (LIMIT)

 

 

▷ Example

*Oracle에는 LIMIT 함수가 없다 따라서 ROWNUM을 이용해 동일한 결과를 추출

*서브쿼리는 시간순으로 정렬한 후 행에 순번을 매기기 위해 사용

*순번이 매겨진 전체 행에  RECORD_NUM부터 ROWNUM 건을 조회

 

<select id="examplePaging" parameterType="ExampleDTO" resultType="ExampleDTO">
    SELECT 
        * 
    FROM ( 
            SELECT 
                [COLUMN],
                [COLUMN],
                ROWNUM AS RECORD_NUM 
            FROM 
                EXAMPLE_TABLE 
            WHERE 
                [COLUMN] = [조건]
            <!-- 시간순으로 내림차순 정렬 -->
            ORDER BY REGIST_DTM DESC 
        ) 
    WHERE 
        <!-- RECORD_NUM : 조회 시작 번호, ROWNUM : 조회 건수 -->
        <![CDATA[ RECORD_NUM >= #{offset} AND ROWNUM <= #{limit} ]]>
</select>

 

 

728x90
728x90

댓글