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
'▶ Back-End > DataBase' 카테고리의 다른 글
Cassandra Snapshot Backup And Restore 방법 (2) | 2023.10.04 |
---|---|
MySql ON DUPLICATE KEY UPDATE 구문 (0) | 2023.08.02 |
Mybatis Oracle BEGIN-END(PL/SQL) (0) | 2021.02.04 |
Mybatis foreach문(반복문/동적 SQL) (0) | 2021.02.04 |
Mybatis Oracle MERGE INTO 구문 (0) | 2021.01.29 |
댓글