บทความนี้อธิบายเทคโนโลยีการปนเปื้อนตามการใช้งานไฮเบอร์เนต แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ก่อนอื่นให้ฉันอธิบายหลักการของการใช้การเพจจ้องขึ้นอยู่กับไฮเบอร์เนต หากคุณดึงข้อมูล 100 ชิ้นจากฐานข้อมูลเราต้องแสดง 10 ชิ้นต่อหน้า หากเริ่มต้นจาก 30 คุณจะต้องตั้งค่าตำแหน่งเริ่มต้นและผลลัพธ์การส่งคืนสูงสุดเพื่อป้อนรหัสก่อน: โปรดทราบว่าพารามิเตอร์ที่ส่งผ่านในหน้ารวมซึ่งจะเปิดตัวในภายหลัง
รายการสาธารณะ <บทความ> queryByPage (ชื่อผู้ใช้สตริงสุดท้ายหน้าหน้าสุดท้าย) {ส่งคืนสิ่งนี้ GetHiberNateTemplate (). ExecuteFind (ใหม่ hibernateCallback () {วัตถุสาธารณะ doinhibernate (เซสชันเซสชัน) โยน art.ritexception /art. query.setparameter (0, ชื่อผู้ใช้);รหัสคีย์ด้านบนคือ setMaxResults () และ setFirStResult () ซึ่งตั้งค่าค่าการแสดงผลสูงสุดและจุดเริ่มต้น
ที่นี่เราต้องการคลาสเครื่องมือหน้าเพื่อใช้งานการปนเปื้อน
page.java:
แพ็คเกจ com.fenye; หน้าคลาสสาธารณะ {// 1. จำนวนการแสดงต่อหน้า (ทุกหน้า) INT ส่วนตัวทุกหน้า; // 2. จำนวนระเบียนทั้งหมด (รวม) รวม INT รวมค่ารวม; // 3. จำนวนหน้าทั้งหมด (TotalPage) Private Int TotalPage; // 4. หน้าปัจจุบัน (CurrentPage) Private Int CurrentPage; // 5. จุดเริ่มต้น (เริ่มต้น) INT Private Int Beginindex; // 6. มีหน้าก่อนหน้า (hasprepage) boolean ส่วนตัว hasprepage; // 7. มีหน้าถัดไป (hasnextpage) บูลีนส่วนตัว hasnextpage; หน้าสาธารณะ (int everypage, int totalCount, int totalPage, int currentPage, int beartIndex, boolean hasprepage, boolean hasnextpage) {this.everypage = ทุกหน้า; this.totalcount = TotalCount; this.totalpage = TotalPage; this.currentPage = currentPage; this.beginIndex = enginindex; this.hasprepage = hasprepage; this.hasNextPage = HasNextPage; } // constructor, หน้าสาธารณะเริ่มต้น () {} // สร้างวิธีการตั้งค่าแอตทริบิวต์ทั้งหมด int public int getEveryPage () {ส่งคืนทุกหน้า; } โมฆะสาธารณะ setEerTePage (int everypage) {this.everypage = ทุกหน้า; } public int getTotalcount () {return totalCount; } โมฆะสาธารณะ Settotalcount (int totalCount) {this.totalcount = TotalCount; } public int getTotalPage () {return totalPage; } โมฆะสาธารณะ settotalPage (int totalPage) {this.totalPage = TotalPage; } public int getTotalPage () {return totalPage; } โมฆะสาธารณะ settotalPage (int totalPage) {this.totalPage = TotalPage; } public int getCurrentPage () {return currentPage; } โมฆะสาธารณะ setCurrentPage (int currentPage) {this.currentPage = currentPage; } public int getBeginIndex () {return entarmindex; } โมฆะสาธารณะ setBegInIndex (int beartIndex) {this.beginindex = startIndex; } บูลีนสาธารณะ ishasprepage () {return hasprepage; } โมฆะสาธารณะ sethasprepage (boolean hasprepage) {this.hasprepage = hasprepage; } บูลีนสาธารณะ ishasnextPage () {return hasnextpage; } โมฆะสาธารณะ sethasNextPage (Boolean HasNextPage) {this.hasNextPage = HasNextPage; -คลาสเครื่องมือหน้าส่วนใหญ่ห่อหุ้มข้อมูลหน้าข้อมูลทั้งหมดมีจำนวนเท่าใดจำนวนเท่าใดจะแสดงบนหน้าจำนวนจุดเริ่มต้นจำนวนหน้าทั้งหมดไม่ว่าจะมีหน้าก่อนหน้าหน้าถัดไปและหน้าปัจจุบัน
นอกจากนี้จำเป็นต้องใช้คลาสเครื่องมือสำหรับหน้าปฏิบัติการ PageUtil.java
แพ็คเกจ com.sanqing.fenye;/** ข้อมูลการแบ่งหน้าคลาสเสริมคลาส*/คลาสสาธารณะ PageUtil {หน้าสาธารณะคงที่ preatePage (int everypage, int totalCount, int currentPage) {EveryPePage = GetEveryPage (ทุกหน้า); currentPage = getCurrentPage (CurrentPage); int totalPage = getToTalPage (Everypage, TotalCount); int Beginindex = getBegInIndex (Everypage, CurrentPage); บูลีน hasprepage = gethasprepage (currentpage); บูลีน hasnextpage = gethasnextpage (TotalPage, CurrentPage); ส่งคืนหน้าใหม่ (EveryPePage, TotalCount, TotalPage, CurrentPage, Beginindex, HasPrepage, HasNextPage); } Public Page Page PreatePage (หน้าหน้า, int totalCount) {int everypePage = 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); ส่งคืนหน้าใหม่ (EveryPePage, TotalCount, TotalPage, CurrentPage, Beginindex, HasPrepage, HasNextPage); } // ตั้งค่าจำนวนระเบียนที่แสดงต่อหน้าสาธารณะคงที่ int int getEveryPage (int ทุกหน้า) {ส่งคืนทุกหน้า == 0? 10: ทุกหน้า; } // ตั้งค่าหน้าปัจจุบันสาธารณะคงที่ int getCurrentPage (int currentPage) {return currentPage == 0? 1: CurrentPage; } // ตั้งค่าจำนวนหน้าทั้งหมดจำเป็นต้องมีจำนวนระเบียนทั้งหมดต้องใช้ int getTotalPage แบบคงที่จำนวนเท่าใด (int EverypePage, int totalCount) {int totalPage = 0; if (TotalCount % Everypage == 0) {TotalPage = TotalCount / EveryPePage; } else {TotalPage = TotalCount / EveryPePAGE + 1; } return totalPage; } // ตั้งค่าจุดเริ่มต้นจำนวน int public int getBeginIndex (int everypepage, int currentPage) {return (currentPage - 1) * ทุกหน้า; } // ตั้งค่าว่ามีหน้าก่อนหน้าหรือไม่และหน้าปัจจุบันจะต้องเป็นบูลีนแบบคงที่ gethasprepage (int currentPage) {return currentPage == 1? เท็จ: จริง; } // ตั้งค่าว่ามีหน้าถัดไปหรือไม่และจำนวนหน้าทั้งหมดและหน้าปัจจุบันต้องการบูลีนแบบคงที่ gethasnextPage (int totalPage, int currentPage) {return currentPage == TotalPage || TotalPage == 0? เท็จ: จริง; -สร้างหน้าเฉพาะต้องใช้พารามิเตอร์ 3 ตัวเท่านั้น ข้อมูลจะปรากฏขึ้นในแต่ละหน้าเท่าใดข้อมูลจะแสดงข้อมูลในหน้าปัจจุบันเท่าใดข้อมูลทั้งหมดคือทั้งหมดและอีก 4 พารามิเตอร์สามารถคำนวณได้ผ่านทั้งสามนี้
ดังนั้นในการสร้างหน้าในภายหลังคุณจะต้องเรียกวิธีการเครื่องมือนี้ pageutil.createPage (พารามิเตอร์ 3 ตัว) และส่งคืนหน้า
หน้าส่งคืนคือหน้าของพารามิเตอร์ก่อนหน้านั่นคือหน้าที่จะแสดง
สิ่งนี้จะได้รับการพิจารณาว่าเป็นฟังก์ชั่นการปนเปื้อน
ฉันหวังว่าคำอธิบายในบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคนตามกรอบการทำงานของไฮเบอร์เนต