Artikel ini menjelaskan teknologi pagination berdasarkan implementasi hibernasi. Bagikan untuk referensi Anda, sebagai berikut:
Pertama -tama izinkan saya menjelaskan prinsip pelaksanaan paging berdasarkan hibernate. Jika Anda mengambil 100 lembar data dari database, kami perlu menampilkan 10 buah per halaman. Jika mulai dari 30, Anda hanya perlu mengatur posisi awal dan hasil pengembalian maksimum untuk memasukkan kode terlebih dahulu: Perhatikan bahwa parameter yang dilewati di halaman termasuk, yang akan diperkenalkan nanti.
DAFTAR PUBLIK <TARTENTER> QUERYBYPAGE (Username String Final, Halaman Halaman Akhir) {return this.getHibNeTeTemplate (). ExecutEfind (baru hibernatecallback () {objek publik doNhibernate (sesi sesi) melempar hibernateException, sqlexception {query query = session.creaticequent ("{query {query {query {query. query.setParameter (0, nama pengguna);Kode kunci di atas adalah setmaxResults (), dan setFirStresult (), yang menetapkan nilai tampilan maksimum dan titik awal.
Di sini kita membutuhkan kelas alat halaman untuk mengoperasikan pagination.
Halaman.java:
Paket com.fenye; halaman kelas publik {// 1. Jumlah tampilan per halaman (everypage) Private int Everypage; // 2. Jumlah total catatan (TotalCount) Private Int TotalCount; // 3. Jumlah total halaman (TotalPage) Totalpage int swasta; // 4. Halaman saat ini (SurrentPage) Private Intropage Private; // 5. Titik Mulai (StartIndex) Private Int StartIndex; // 6. Apakah ada halaman sebelumnya (Hasprepage) Private Boolean Hasprepage; // 7. Apakah ada halaman berikutnya (HasNextPage) Private Boolean HasNextPage; Halaman publik (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; } // Konstruktor, halaman publik default () {} // Bangun metode ini, atur semua atribut int getEverpetage publik () {return 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; }}Kelas alat halaman terutama merangkum informasi halaman, berapa banyak data secara total, berapa banyak yang ditampilkan pada halaman, jumlah titik awal, jumlah total halaman, apakah ada halaman sebelumnya, halaman berikutnya, dan halaman saat ini.
Juga, kelas alat untuk halaman operasi diperlukan, pageutil.java
Paket com.sanqing.fenye;/** Informasi pagination kelas tambahan*/kelas publik pageutil {public static Page createPage (int everypage, int totalCount, int currentpage) {everypage = geteverypage (everypage); currentPage = getCurrentPage (currentPage); int totalPage = getTotalPage (setiap halaman, totalcount); int beginIndex = getBeginIndex (Everypage, currentpage); boolean hasprepage = getHasprepage (currentpage); boolean hasnextpage = getHasnextPage (totalpage, currentPage); Mengembalikan halaman baru (Everypage, TotalCount, TotalPage, Currentpage, StartIndex, Hasprepage, HasNextPage); } public static page createPage (halaman halaman, int totalCount) {int everpage = getEverpage (page.geteverypage ()); int currentPage = getCurrentPage (page.getCurrentPage ()); int totalPage = getTotalPage (setiap halaman, totalcount); int beginIndex = getBeginIndex (Everypage, currentpage); boolean hasprepage = getHasprepage (currentpage); boolean hasnextpage = getHasnextPage (totalpage, currentPage); Mengembalikan halaman baru (Everypage, TotalCount, TotalPage, Currentpage, StartIndex, Hasprepage, HasNextPage); } // Setel jumlah catatan yang ditampilkan per halaman public static int geteverypage (int everypage) {return everpage == 0? 10: setiap halaman; } // Atur halaman saat ini statis public static getCurrentPage (int currentPage) {return currentPage == 0? 1: lancarpage; } // Tetapkan jumlah total halaman, jumlah total catatan diperlukan, berapa banyak getTotalPage statis publik (int everypage, int totalCount) {int totalPage = 0; if (totalCount % EveryPage == 0) {TotalPage = TotalCount / EveryPage; } else {totalPage = TotalCount / EveryPage + 1; } return TotalPage; } // Atur titik awal, berapa banyak inttatic int getBeginIndex (int everypage, int currentPage) {return (currentPage - 1) * setiap halaman; } // Setel apakah ada halaman sebelumnya, dan halaman saat ini harus public static boolean gethasprepage (int currentPage) {return currentPage == 1? Salah: Benar; } // Tetapkan apakah ada yang berikutnya, dan jumlah total halaman dan halaman saat ini membutuhkan public static boolean gethasnextPage (int totalpage, int currentPage) {return currentPage == totalpage || TotalPage == 0? Salah: Benar; }}Buat halaman hanya membutuhkan 3 parameter. Berapa banyak data yang ditampilkan pada setiap halaman, berapa banyak data yang ditampilkan pada halaman saat ini, berapa banyak data yang total, dan 4 parameter lainnya dapat dihitung melalui ketiganya.
Jadi untuk membuat halaman nanti, Anda hanya perlu memanggil metode alat ini pageutil.createPage (3 parameter), dan mengembalikan halaman.
Halaman yang dikembalikan adalah halaman dari parameter sebelumnya, yaitu, halaman yang akan ditampilkan
Ini akan dianggap menyelesaikan fungsi pagination.
Saya berharap deskripsi dalam artikel ini akan membantu pemrograman Java semua orang berdasarkan kerangka hibernasi.