Kaji konsep reka bentuk pemalam paging MyBatis
Teroka idea reka bentuk pemalam paging MyBatis
MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang digunakan secara meluas dalam pembangunan Java. Dalam pembangunan projek sebenar, kami sering menghadapi keperluan untuk memaparkan hasil pertanyaan pangkalan data dalam halaman. MyBatis tidak menyediakan pemalam paging rasmi, jadi pembangun biasanya menggunakan pemalam pihak ketiga untuk mencapai fungsi ini. Artikel ini akan menyelidiki cara mereka bentuk pemalam paging MyBatis yang ringkas dan cekap serta memberikan contoh kod khusus.
1. Idea reka bentuk
Untuk mereka bentuk pemalam paging MyBatis, anda perlu melaksanakan dengan jelas prinsip teras paging: hadkan bilangan dan offset hasil pertanyaan melalui LIMIT dan OFFSET dalam pernyataan pertanyaan SQL. Oleh itu, pemalam kami perlu memintas pernyataan pertanyaan SQL dan menambahkan parameter LIMIT dan OFFSET secara dinamik untuk melaksanakan fungsi halaman.
Idea reka bentuk khusus adalah seperti berikut:
- Buat kelas Halaman untuk merangkum parameter pertanyaan halaman halaman yang berkaitan, seperti nombor halaman, saiz halaman, jumlah bilangan rekod, dsb.
- Sesuaikan Interceptor, laksanakan antara muka Interceptor MyBatis, tulis semula kaedah intercept(), memintas pernyataan pertanyaan SQL dalam kaedah ini dan tambah secara dinamik parameter LIMIT dan OFFSET mengikut objek Halaman.
- Konfigurasikan Pemintas dalam fail konfigurasi MyBatis untuk menjadikannya berkesan. . kaedah:
public class Page { private int pageNo; // 当前页码 private int pageSize; // 每页大小 private int total; // 总记录数 // 省略getter和setter方法 }
@Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class}) }) public class CustomPaginationInterceptor implements Interceptor { @Override public Object intercept(Invocation invocation) throws Throwable { if (invocation.getTarget() instanceof StatementHandler) { StatementHandler statementHandler = (StatementHandler) invocation.getTarget(); MetaObject metaObject = SystemMetaObject.forObject(statementHandler); while (metaObject.hasGetter("h")) { Object obj = metaObject.getValue("h"); metaObject = SystemMetaObject.forObject(obj); } MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement"); if ("SELECT".equals(mappedStatement.getSqlCommandType().name())) { BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql"); String originalSql = boundSql.getSql(); Page page = PageHelper.getPage(); if (page != null) { String limitSql = String.format("%s LIMIT %s OFFSET %s", originalSql, page.getPageSize(), (page.getPageNo() - 1) * page.getPageSize()); metaObject.setValue("delegate.boundSql.sql", limitSql); } } } return invocation.proceed(); } @Override public Object plugin(Object target) { if (target instanceof StatementHandler) { return Plugin.wrap(target, this); } return target; } @Override public void setProperties(Properties properties) { // 空实现 } }
<plugins> <plugin interceptor="com.example.CustomPaginationInterceptor"> </plugins>
public interface UserMapper { List<User> selectByPage(Page page); }
Dalam logik perniagaan, panggil kaedah selectByPage dan masukkan objek Halaman:
<select id="selectByPage" resultMap="userResultMap"> SELECT * FROM user </select>
Melalui idea reka bentuk dan contoh kod di atas, kami berjaya melaksanakan pemalam halaman MyBatis yang mudah dan cekap. Pembangun boleh menyesuaikan dan mengoptimumkan mengikut keperluan projek sebenar untuk mencapai fungsi paging yang lebih fleksibel dan berkuasa. Saya harap artikel ini akan membantu anda memahami idea reka bentuk pemalam paging MyBatis.
Atas ialah kandungan terperinci Kaji konsep reka bentuk pemalam paging MyBatis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kebanyakan pengguna menggunakan Excel untuk memproses data jadual Malah, Excel juga mempunyai program VBA fungsi fungsi adalah serupa. Biar saya perkenalkan kepada anda penggunaan fungsi iif. Terdapat fungsi iif dalam pernyataan SQL dan kod VBA dalam Excel. Fungsi iif adalah serupa dengan fungsi IF dalam lembaran kerja excel Ia melakukan pertimbangan nilai benar dan salah dan mengembalikan hasil yang berbeza berdasarkan nilai benar dan salah yang dikira secara logik. JIKA penggunaan fungsi adalah (syarat, ya, tidak). Penyataan IF dan fungsi IIF dalam VBA Penyataan IF dahulu ialah penyataan kawalan yang boleh melaksanakan penyataan yang berbeza mengikut syarat yang terakhir

Maklumat log pangkalan data Oracle boleh ditanya dengan kaedah berikut: Gunakan penyata SQL untuk membuat pertanyaan dari paparan v$log gunakan alat LogMiner untuk menganalisis fail log gunakan arahan ALTER SYSTEM untuk melihat status fail log semasa; Arahan TRACE untuk melihat maklumat tentang peristiwa tertentu menggunakan operasi Alat sistem melihat pada akhir fail log.

Untuk menanyakan struktur storan pangkalan data MySQL, anda boleh menggunakan pernyataan SQL berikut: SHOW CREATE TABLE table_name pernyataan ini akan mengembalikan definisi lajur dan maklumat pilihan jadual bagi jadual, termasuk nama lajur, jenis data, kekangan dan sifat umum jadual; , seperti enjin storan dan set aksara.

Eksport hasil pertanyaan dalam Navicat: Laksanakan pertanyaan. Klik kanan hasil pertanyaan dan pilih Eksport Data. Pilih format eksport seperti yang diperlukan: CSV: Pemisah medan ialah koma. Excel: Termasuk pengepala jadual, menggunakan format Excel. Skrip SQL: Mengandungi pernyataan SQL yang digunakan untuk mencipta semula hasil pertanyaan. Pilih pilihan eksport (seperti pengekodan, pemisah baris). Pilih lokasi eksport dan nama fail. Klik "Eksport" untuk memulakan eksport.

Untuk menyelesaikan isu kegagalan permulaan pangkalan data MySQL, ikuti langkah berikut: Semak kebenaran dan pastikan anda menggunakan pengguna dengan kebenaran yang sesuai. Jika pangkalan data sudah wujud, padamkannya atau pilih nama lain. Jika jadual sudah wujud, padamkannya atau pilih nama lain. Semak pernyataan SQL untuk ralat sintaks. Sahkan bahawa pelayan MySQL sedang berjalan dan boleh disambungkan. Sahkan bahawa anda menggunakan nombor port yang betul. Semak fail log MySQL atau Pencari Kod Ralat untuk butiran ralat lain.

Penyata MySQL SQL boleh dilaksanakan dengan: Menggunakan MySQL CLI (Antaramuka Talian Perintah): Log masuk ke pangkalan data dan masukkan pernyataan SQL. Menggunakan MySQL Workbench: Mulakan aplikasi, sambung ke pangkalan data, dan laksanakan pernyataan. Gunakan bahasa pengaturcaraan: import perpustakaan sambungan MySQL, buat sambungan pangkalan data, dan laksanakan pernyataan. Gunakan alat lain seperti Pelayar DB untuk SQLite: muat turun dan pasang aplikasi, buka fail pangkalan data dan laksanakan penyata.

Terdapat dua cara paling biasa untuk menomborkan tatasusunan PHP: menggunakan fungsi array_slice(): hitung bilangan elemen untuk dilangkau, dan kemudian ekstrak julat elemen yang ditentukan. Gunakan iterator terbina dalam: laksanakan antara muka Iterator, dan kaedah rewind(), key(), current(), next(), dan valid() digunakan untuk melintasi elemen dalam julat yang ditentukan.

Cara menggunakan parameter dalam pencetus MySQL memerlukan contoh kod khusus MySQL ialah sistem pengurusan pangkalan data hubungan popular yang menyokong pencetus untuk memantau perubahan dalam data dalam jadual dan melaksanakan operasi yang sepadan. Pencetus boleh dicetuskan apabila operasi INSERT, UPDATE atau DELETE berlaku Ia adalah fungsi pangkalan data yang berkuasa yang boleh digunakan untuk melaksanakan kekangan data, pengelogan, penyegerakan data dan keperluan lain. Dalam MySQL, pencetus boleh menggunakan parameter untuk menghantar data, dan parameter boleh digunakan untuk menyesuaikan pencetus secara fleksibel.
