이 기사에서는 최대 절전 모드 구현을 기반으로 한 페이지 매김 기술에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
먼저 최대 절전 모드를 기반으로 페이징을 구현하는 원리를 설명하겠습니다. 데이터베이스에서 100 개의 데이터를 가져 오면 페이지 당 10 개를 표시해야합니다. 30에서 시작하면 시작 위치와 최대 리턴 결과 만 설정하면 코드를 먼저 입력 할 수 있습니다. 나중에 소개됩니다.
public list <articlebybypage (최종 문자열 사용자 이름, 최종 페이지 페이지) {return this.gethibernateTemplate (). executeFind (new HiberNateCallback () {public object doinHibernate (세션 세션)는 동 최대 방학, sqlexception {query query = session.createrecer (예술가에서 select the art.userame =? query.setparameter (0, 사용자 이름).위의 키 코드는 setMaxResults () 및 setFirstresult ()이며 최대 표시 값과 시작점을 설정합니다.
여기서는 페이지 매김을 작동하려면 페이지 도구 클래스가 필요합니다.
page.java :
패키지 com.fenye; 공개 클래스 페이지 {// 1. 페이지 당 디스플레이 수 (EveryPage) 개인 int EveryPage; // 2. 총 레코드 수 (TotalCount) Private Int TotalCount; // 3. 총 페이지 수 (TotalPage) 개인 int TotalPage; // 4. 현재 페이지 (CurrentPage) 개인 int currentPage; // 5. 시작점 (시작점) private int beginIndex; // 6. 이전 페이지 (HaspRepage) 개인 부울 hasprepage가 있습니까? // 7. 다음 페이지가 있습니까 (hasnextPage) 개인 부울 hasnextpage; 공개 페이지 (int EveryPage, Int TotalCount, Int TotalPage, int currentPage, int beginIndex, boolean hasprepage, boolean hasnextpage) {this.everypage = EveryPage; this.totalCount = TotalCount; this.totalpage = TotalPage; this.currentpage = currentpage; this.beginindex = beginindex; this.hasprepage = hasprepage; this.hasnextPage = hasnextPage; } // 생성기, 기본 공용 page () {} // 메소드 구성, 모든 속성을 설정하여 public int geteverypage () {EveryPage를 반환합니다. } public void seteverypage (int EveryPage) {this.everypage = EveryPage; } public int getTotalCount () {return totalCount; } public void settoTalCount (int totalCount) {this.totalCount = TotalCount; } public int getTotalPage () {return totalpage; } public void settotalpage (int totalpage) {this.totalpage = TotalPage; } public int getTotalPage () {return totalpage; } public void settotalpage (int totalpage) {this.totalpage = TotalPage; } public int getCurrentPage () {return currentPage; } public void setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getBeginIndex () {return beginIndex; } public void setBeginIndex (int beginIndex) {this.beginIndex = beginIndex; } public boolean ishasprepage () {return hasprepage; } public void sethasprepage (boolean hasprepage) {this.hasprepage = hasprepage; } public boolean ishasnextpage () {return hasnextPage; } public void sethasnextpage (boolean hasnextPage) {this.hasnextPage = hasnextPage; }}페이지 도구 클래스는 주로 페이지 정보를 캡슐화, 총 데이터의 양, 페이지에 표시되는 양, 시작점 수, 총 페이지 수, 이전 페이지, 다음 페이지 및 현재 페이지가 있는지 여부.
또한 페이지 운영을위한 도구 클래스가 필요합니다, pageutil.java
패키지 com.sanqing.fenye;/** Pagination Information 보조 클래스*/public class pageutil {public static page createpage (int everypage, int totalcount, int currentpage) {EveryPage = geteveryPage (EveryPage); CurrentPage = GetCurrentPage (CurrentPage); int totalpage = getTotalPage (EveryPage, TotalCount); int beginIndex = getBeginIndex (EveryPage, CurrentPage); 부울 hasprepage = gethasprepage (currentpage); 부울 hasnextpage = gethasnextpage (TotalPage, CurrentPage); 새 페이지를 반환합니다 (EveryPage, TotalCount, TotalPage, CurrentPage, BeginIndex, Hasprepage, HasnextPage); } public static page createPage (페이지 페이지, int totalCount) {int EveryPage = geteveryPage (page.geteveryPage ()); int currentpage = getCurrentPage (page.getCurrentPage ()); int totalpage = getTotalPage (EveryPage, TotalCount); int beginIndex = getBeginIndex (EveryPage, CurrentPage); 부울 hasprepage = gethasprepage (currentpage); 부울 hasnextpage = gethasnextpage (TotalPage, CurrentPage); 새 페이지를 반환합니다 (EveryPage, TotalCount, TotalPage, CurrentPage, BeginIndex, Hasprepage, HasnextPage); } // 페이지 당 표시되는 레코드 수 설정 공개 정적 int geteverypage (int EveryPage) {EveryPage == 0? 10 : 모든 페이지; } // 현재 페이지 설정 공개 정적 int getCurrentPage (int currentPage) {return currentPage == 0? 1 : CurrentPage; } // 총 페이지 수를 설정하고 총 레코드 수가 필요합니다. 공개 정적 int getTotalPage (int EveryPage, int TotalCount) {int totalpage = 0; if (TotalCount % EveryPage == 0) {TotalPage = TotalCount / EveryPage; } else {TotalPage = TotalCount / EveryPage + 1; } return totalpage; } // 시작점을 설정합니다. 공개 정적 int getBeginIndex 수 (int EveryPage, int currentPage) {return (currentPage -1) * EveryPage; } // 이전 페이지가 있는지 여부를 설정하고 현재 페이지는 공개 정적 부울 gethasprepage (int currentpage) {return currentPage == 1이어야합니까? 거짓 : 사실; } // 다음 항목이 있는지 여부와 총 페이지 수와 현재 페이지에는 공개 정적 부울 gethasnextPage (int totalpage, int currentPage) {return currentPage == TotalPage || TotalPage == 0? 거짓 : 사실; }}페이지를 작성하려면 3 개의 매개 변수 만 필요합니다. 각 페이지에 표시되는 데이터 금액, 현재 페이지에 표시되는 데이터의 양, 총 데이터 금액 및 다른 4 개의 매개 변수는이 세 가지를 통해 계산할 수 있습니다.
따라서 나중에 페이지를 만들려면이 도구 방법 PageUtil.createPage (3 매개 변수)를 호출하고 페이지를 반환하면됩니다.
반환 된 페이지는 이전 매개 변수의 페이지, 즉 표시 할 페이지입니다.
이것은 Pagination 기능을 완료하는 것으로 간주됩니다.
이 기사의 설명이 최대 절전 모드 프레임 워크를 기반으로 한 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.