MyBatis 에서 PageHelper 가 적용 되 지 않 는 솔 루 션

MyBatis 중 PageHelper 가 유효 하지 않 습 니 다
오늘 pageHelper 를 사용 하 였 는데 PageHelper.startPage(page,pageSize)가 설정 되 어 있 음 을 발 견 했 습 니 다.pageSize 는 10 으로 설정 되 었 으 나 결 과 는 페이지 를 나 누 지 않 고 모든 데 이 터 를 찾 았 습 니 다.
문제 해결:
이 유 는 my batis 의 의존 버 전 문제 입 니 다.이전에 설정 한 것 은 1.0.0 버 전 입 니 다.이 버 전 은 페이지 차단 을 지원 하지 않 습 니 다.

<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.0.0</version>
</dependency>
그래서 1.1.1 버 전 으로 수정 해서 문 제 를 해결 하도록 하 겠 습 니 다.

<!-- mybatis -->
<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.1.1</version>
 </dependency>
 <!--      -->
<dependency>
 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper</artifactId>
 <version>4.1.6</version>
</dependency>
MyBatis PageHelper 페이지 속성 을 수 동 으로 설정 할 수 없습니다
환경:springboot+mybatis,페이지 help 플러그 인 사용
다음 의존:

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis.spring.boot</groupId>
                    <artifactId>mybatis-spring-boot-starter</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
질문 설명:
페이지 대상 을 수 동 으로 구축 합 니 다.설정 한 pages 속성 은 유효 하지 않 습 니 다.예 를 들 어 설정 값 은 3 이 고 가 져 올 때 0 입 니 다.
원인:
구 조 된 Page 대상 은 pageSize 속성 을 설정 하지 않 았 습 니 다.page 대상 의 setTotal()방법 을 호출 할 때 이 방법 내 부 는 pageSize 속성 에 따라 pageSize 속성의 값 을 초기 화 합 니 다.
Page 대상 의 setTotal 방법 원본 은 다음 과 같 습 니 다.

public void setTotal(long total) {
        this.total = total;
        if (total == -1) {
            pages = 1;
            return;
        }
        //   pageSize<=0,      pages=0; pageSize   0
        if (pageSize > 0) {
            pages = (int) (total / pageSize + ((total % pageSize == 0) ? 0 : 1));
        } else {
            pages = 0;
        }
        //     ,            
        if ((reasonable != null && reasonable) && pageNum > pages) {
            pageNum = pages;
            calculateStartAndEndRow();
        }
    }
수 동 구조 페이지 대상 코드 는 다음 과 같 습 니 다.

//    page  
Page<StudyRecordVo> pageResult = new Page<>();
//    pageSize,setPages      , setTotal     pageResult pages  
//     : 1.   pageSize     setTotal    ; 2. setTotal         pages  
pageResult.setPageSize(pageDto.getPageSize());
pageResult.setPages(totalPages);
pageResult.setTotal(totalElements);
pageResult.addAll(studyRecordVoList);
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기