Dikatakan bahwa ini adalah penggunaan terbaik, itu jelas bukan lelucon, tetapi banyak orang tidak mengerti mengapa mereka menggunakan plugin ini. Bukankah baik menggunakan SQL dengan tulisan tangan dan pagination dari SQL ...
Jadi saya secara khusus menulis contoh seperti ini untuk menjelaskan mengapa ini yang terbaik.
Misalkan kita telah menulis antarmuka mapper dan xml, sebagai berikut:
Antarmuka Publik SysloginLogMapper { / ** * Permintaan log login berdasarkan kondisi kueri * @param logip * @param nama pengguna * @param login * @param exitdate * @return * / list <sysloginlog> findsysloginlog (@param ("logip") string, @string @ @@param, @param ") @Param ("LogIndate") String LogIndate, @param ("ExitDate") String ExitDate, @param ("LOGERR") String LOGERR); } <? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> namespace = "com.easternie.sys.dao.sysloginlogmapper"> <pilih id = "findsysloginlog" resultType = "com.easternie.sys.vo.model.sysloginlog"> Pilih * dari sys_login_log a <if test = "Userer =" USERN = "USERERN! a.userid = b.userid </if> <where> <if test = "logip! = null dan logip! = '' '"> a.logip seperti'%'||#{logip} ||'%'</if> <if test = "nama pengguna! = null dan username! ='" "" dan (b.usname like '%' | | | iBul dan Username! = '""> dan (b.username like'%'{iReNName' '%' ||#{username} || '%') </if> <if test = "loginDate! = null dan logindate! = ''"> dan to_date (substr (a.logindate, 0,10), 'yyyy-mm-dd') = to_date (#{{{{{#{{#{{{#{{#{{#{{#{{#{{#{#{#i ify. test = "EXITDATE! = NULL dan EXITDATE! = ''"> dan to_date (substr (a. exitdate, 0,10), 'yyyy-mm-dd') = to_date (#{exitDate}, 'yyyy-mm-dd') </if> <if test = "loGerr! '%' ||#{LOGERR} || '%' </if> </where> order by LogId desc </select> </mapper>Meskipun ini adalah contoh sederhana, XML di sini tidak sesederhana itu.
Jika Anda sudah memiliki beberapa metode mybatis siap pakai seperti di atas, dan saya ingin memberi paginasi kueri ini sekarang, apa yang harus saya lakukan?
Jika itu adalah SQL tulisan tangan, saya perlu menambahkan dua antarmuka, satu menanyakan jumlah total, dan yang lainnya berubah menjadi pagination. Tampaknya tidak sulit untuk menyalin dan menempel di XML, dan kemudian mengubah pernyataan itu. Apakah Anda melakukan ini?
Jika menggunakan plugin ini, apa yang harus saya lakukan? ? ?
Untuk metode ini yang telah ditulis Mybatis, saya tidak perlu mengubah apa pun.
Tetapi lapisan layanan mungkin perlu dipindahkan. Contoh spesifik di atas. Lihatlah kode panggilan layer layanan di bawah ini.
Kode saat paging tidak diperlukan:
Daftar Publik <SysloginLog> findsysloginlog (string loginip, string username, string loginDate, string exitDate, string lOgerr) melempar BusinessException {return SysloginLogMapper.findsysloginLog (login, username, logindate, exitdate, logerr) (LoginIp, Username, Logindate, ExitDate, LOGERR) (LOGINIP; } Kode setelah menambahkan fungsi paging:
Public PageHelper.page <sysloginlog> findsysloginlog (string loginip, string username, string logindate, string exitdate, string lOgerr, int pagenumber, int pageSize) melempar BusinessException {pageHelper.StartPage (pagenumber, imbalan); sysloginlogmapper.findsysloginlog (loginip, nama pengguna, logindate, eksitdat, logerr); return pageHelper.endpage (); } Sebagai perbandingan:
Nilai pengembalian telah diubah dari daftar <sysloginlog> menjadi pageHelper.page <ysloginlog>
Dua parameter telah ditambahkan, pagenumber dan halaman
Kemudian dalam kode proses, itu disebut terlebih dahulu
PageHelper.StartPage (Pagenumber, PageSize);
StartPage memberi tahu The Interceptor bahwa saya akan memulai paging. Parameter paged adalah keduanya.
Kemudian hubungi kode mybatis asli:
sysloginlogmapper.findsysloginlog (loginip, nama pengguna, logindate, eksitdat, logerr);
Apakah aneh bahwa tidak ada nilai pengembalian yang diterima di sini? Faktanya, PageHelper telah secara otomatis menerima nilai pengembalian. Nilai pengembalian dapat diambil melalui kode berikut:
PageHelper.endpage ();
Pada saat yang sama, Endpage mengatakan kepada The Interceptor bahwa saya telah mengakhiri paging dan saya tidak membutuhkan Anda lagi.
Apakah menurut Anda kode seperti itu sederhana atau tulisan tangan SQL sederhana?
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.