تصف هذه المقالة تقنية ترقيم الصفحات على أساس تنفيذ السبات. شاركه للرجوع إليه ، على النحو التالي:
اسمحوا لي أولاً أن أشرح مبدأ تنفيذ الترحيل على أساس السبات. إذا جلبت 100 قطعة من البيانات من قاعدة البيانات ، فنحن بحاجة إلى إظهار 10 قطع لكل صفحة. إذا بدأت من 30 ، فأنت بحاجة فقط إلى تعيين موضع البداية وحد أقصى نتيجة إرجاع لإدخال الرمز أولاً: لاحظ أن المعلمات التي تم تمريرها في صفحة تضمين ، والتي سيتم تقديمها لاحقًا.
القائمة العامة <article> QueryByPage (اسم المستخدم النهائي ، صفحة الصفحة النهائية) {return this.gethibernateMeMent (). executefind (new hibernatecallback () {public object doinhibernate (select article) inter article =؟ Query.SetParameter (0).رمز المفتاح أعلاه هو setMaxResults () ، و setFirStresult () ، والذي يحدد الحد الأقصى لقيمة العرض ونقطة البداية.
نحتاج هنا إلى فئة أدوات الصفحة لتشغيل ترقيم الصفحات.
page.java:
package com.fenye ؛ صفحة الفئة العامة {// 1. عدد العروض لكل صفحة (EveryPage) private inhapage ؛ // 2. إجمالي عدد السجلات (TotalCount) Private Int TotalCount ؛ // 3. إجمالي عدد الصفحات (TotalPage) Private Int Totalpage ؛ // 4. الصفحة الحالية (PRISTERPAGE) Private Int Currentpage ؛ // 5. نقطة البدء (BEGININDEX) Private Int BeginIndex ؛ // 6. هل هناك صفحة سابقة (hasprepage) hasprepage الخاصة ؛ . الصفحة العامة (int everypage ، int totalCount ، int totalpage ، int currentpage ، int begrenindex ، boolean hasprepage ، boolean hasnextpage) {this.everypage = earyPage ؛ this.totalCount = TotalCount ؛ this.totalPage = TotalPage ؛ this.currentPage = currentpage ؛ هذا. this.hasprepage = hasprepage ؛ this.hasnextPage = hasnextPage ؛ } // constructor ، Public Page () {} // إنشاء الطريقة ، قم بتعيين جميع السمات العامة int geteverypage () {return earypage ؛ } public void seteverypage (int earypage) {this.everypage = earyPage ؛ } 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 bathindex) {this.beginIndex = beginIndex ؛ } boolean public Ishasprepage () {return hasprepage ؛ } public void sethasprepage (boolean hasprepage) {this.hasprepage = hasprepage ؛ } boolean public IshasnextPage () {return hasnextPage ؛ } public void sethasNextPage (boolean hasnextpage) {this.hasNextPage = hasnextPage ؛ }}تضم فئة أدوات الصفحة بشكل أساسي معلومات الصفحة ، وكم البيانات في المجموع ، ومقدار المعروض في الصفحة ، وعدد نقاط البداية ، وإجمالي عدد الصفحات ، سواء كانت هناك الصفحة السابقة ، والصفحة التالية ، والصفحة الحالية.
أيضًا ، هناك حاجة إلى فئة أدوات لصفحات التشغيل ، pageutil.java
Package com.sanqing.fenye ؛/** معلومات ترقيم الفئة المساعدة*/Public Class PageUtil {public static page createPage (int earypage ، int totalCount ، int currentpage) {earyPage = geteverypage (everypage) ؛ CurrentPage = getCurrentPage (page page) ؛ int totalpage = getTotalPage (EveryPage ، TotalCount) ؛ int bathindex = getBeginIndex (EveryPage ، currentpage) ؛ boolean hasprepage = gethAsprepage (page page) ؛ boolean hasnextpage = gethasNextPage (totalpage ، currentpage) ؛ إرجاع صفحة جديدة (EveryPage ، TotalCount ، TotalPage ، CurrentPage ، BeginIndex ، Hasprepage ، hasnextpage) ؛ } صفحة ثابتة عامة CreatePage (صفحة ، int totalCount) {int earyPage = geteverypage (page.geteverypage ()) ؛ int currentpage = getCurrentPage (page.getCurrentPage ()) ؛ int totalpage = getTotalPage (EveryPage ، TotalCount) ؛ int bathindex = getBeginIndex (EveryPage ، currentpage) ؛ boolean hasprepage = gethAsprepage (page page) ؛ boolean hasnextpage = gethasNextPage (totalpage ، currentpage) ؛ إرجاع صفحة جديدة (EveryPage ، TotalCount ، TotalPage ، CurrentPage ، BeginIndex ، Hasprepage ، hasnextpage) ؛ } // قم بتعيين عدد السجلات المعروضة لكل صفحة ثابتة عامة int geteverypage (int earypage) {return earypage == 0؟ 10: كل صفحة ؛ } // قم بتعيين الصفحة الحالية الثابتة int getCurrentPage (int currentpage) {return currentpage == 0؟ 1: page current ؛ } // قم بتعيين إجمالي عدد الصفحات ، مطلوب العدد الإجمالي للسجلات ، وعدد int int int int static int int everypage ، int totalCount) {int totalpage = 0 ؛ if (totalCount ٪ earyPage == 0) {totalPage = totalCount / earyPage ؛ } else {totalPage = TotalCount / earyPage + 1 ؛ } إرجاع totalpage ؛ } // قم بتعيين نقطة البداية ، كم عدد getBeginIndex (int earypage ، int currentpage) {return (currentpage - 1) * earyPage ؛ } // تعيين ما إذا كانت هناك صفحة سابقة ، وتحتاج الصفحة الحالية إلى أن تكون GethAsprepage ثابتة عامة (int currentpage) {return currentpage == 1؟ خطأ: صحيح } // تعيين ما إذا كان هناك عدد التالي ، ويحتاج العدد الإجمالي للصفحات والصفحة الحالية إلى GethasNextPage الثابتة العامة (int totalpage ، int currentpage) {return currentpage == TotalPage || TotalPage == 0؟ خطأ: صحيح }}إنشاء صفحة يتطلب فقط 3 معلمات. مقدار البيانات المعروضة في كل صفحة ، وكمية البيانات المعروضة على الصفحة الحالية ، ومقدار البيانات المجموع ، ويمكن حساب المعلمات الأربعة الأخرى من خلال هؤلاء الثلاثة.
لذلك لإنشاء صفحة لاحقًا ، تحتاج فقط إلى استدعاء طريقة الأداة هذه pageUtil.CreatePage (3 معلمات) ، وإرجاع صفحة.
الصفحة التي تم إرجاعها هي صفحة المعلمة السابقة ، أي الصفحة التي سيتم عرضها
سيعتبر هذا استكمال وظيفة ترقيم الصفحات.
آمل أن يكون الوصف في هذه المقالة مفيدًا لبرمجة Java للجميع استنادًا إلى إطار السبات.