Oracle 은 MyBatis 에서 RowBounds 를 사용 하여 페이지 조회 기능 을 실현 합 니 다.

Oracle 에서 페이지 조 회 는 위 열 rownum 이 존재 하기 때문에 sql 문 구 를 쓰 는 것 이 복잡 합 니 다.현재 MyBatis 의 RowBounds 를 사용 하여 페이지 조 회 를 하 는 것 을 소개 합 니 다.매우 편리 합 니 다.
MyBatis 의 RowBounds 를 사용 하여 페이지 조 회 를 할 때 sql 구문 에 offset,limit,my batis 를 쓸 필요 가 없습니다.페이지 sql 을 자동 으로 연결 하고 offset,limit 를 추가 하여 자동 으로 페이지 를 나 눌 수 있 습 니 다.
프론트 데스크 톱 에서 매개 변수 currentPage 와 pageSize 두 개의 매개 변 수 를 전달 해 야 합 니 다.각각 현재 페이지 와 각 페이지 의 수량 입 니 다.contrller 층 은 매개 변 수 를 service 층 에 전달 하면 됩 니 다.다음은 service 가 실현 하 는 코드 입 니 다.

package com.xyfer.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.RowBounds;
import com.xyfer.dao.UserDao;
import com.xyfer.service.UserService;
public class UserServiceImpl implements UserService {
  private UserDao userDao;
  @Override
  public Map<String, Object> queryUserList(String currentPage, String pageSize) {
    //       
    int total = userDao.queryCountUser();
    //     
    Map<String,Object> resultMap = new HashMap<String,Object>();
    resultMap.put("total", total);
    //   
    int totalpage = (total + Integer.parseInt(pageSize) - 1) / Integer.parseInt(pageSize);
    resultMap.put("totalpage", totalpage);
    //      
    int offset = (Integer.parseInt(currentPage)-1)*Integer.parseInt(pageSize);
    RowBounds rowbounds = new RowBounds(offset, Integer.parseInt(pageSize));
    //      
    List<Map<String, Object>> userList = userDao.queryUserList(rowbounds);
    resultMap.put("userList", userList);
    return resultMap;
  }
}
dao 계층 인터페이스:

package com.xyfer.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.RowBounds;
public interface UserDao {
  public int queryCountUser();    //      
  public List<Map<String, Object>> queryUserList(RowBounds rowbounds);  //      
}
대응 하 는 mapper.xml 파일:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xyfer.mapper.UserMapper">
  <!--        -->
  <select id="queryCountUser" resultType="java.lang.Integer">
    select count(1) from user
  </select>
  <!--        -->
  <select id="queryUserList" resultType="java.util.Map">
    select * from user
  </select>
</mapper>
postman 호출 인 터 페 이 스 를 통 해 해당 하 는 매개 변 수 를 전송 하면 페이지 별로 데 이 터 를 조회 할 수 있 습 니 다.
총결산
위 에서 말 한 것 은 소 편 이 소개 한 Oracle 이 MyBatis 에서 Row Bounds 를 사용 하여 페이지 조회 기능 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기