Pada bagian sebelumnya, ini secara singkat berbicara tentang konstruksi dan penggunaan mybatis-plus. Di bagian ini, ini secara singkat berbicara tentang cara menggunakan MP untuk mengimplementasikan pagination multi-tabel.
menganalisa
Proyek yang digunakan masih boot pegas. Mengenai paging, situs web resmi memberikan demo satu meja. Faktanya, prinsip implementasi paging multi-meja adalah sama, dan semuanya melalui Mybatis Interceptor
(Apa yang dilakukan pencegat? Ini akan melakukan sesuatu untuk Anda sebelum SQL Anda dieksekusi, seperti pagination. Kami menggunakan MP dan tidak peduli tentang batas. Interceptor menyambungkannya untuk kami. Kami tidak peduli dengan jumlah total karakter. Setelah pencegat mendapatkan SQL kami, splices select count(*) untuk kami dan menambahkannya ke objek parameter).
menyelesaikan
1. Mengkonfigurasi pencegat
@EnableTransactionManagement@configuration@mapperscan ("com.web.member.mapper") kelas publik mybatisplusconfig { / ** * mybatis-plus plug-in eksekusi sql sql [dapat dimatikan di lingkungan produksi] * / @bean public PerformanceInceptor PerformanceInceptor () {return Performanceor InIntreor] * / @Bean () () {return Performance InIntreInceor () @Bean; } / * * Plug-in pagination, secara otomatis mengidentifikasi multi-tenant dalam jenis database, silakan merujuk ke situs web resmi [ekstensi plugin] * / @bean paginationinterceptor paginationInterceptor () {return new PaginationInterceptor (); }} 2. Antarmuka Mapper dan XML
/** * <p> * Antarmuka tabel pengguna mapper * </p> * * @author yin tianwen * @since 2018-06-01 */Antarmuka publik Usermapper memperluas Basemapper <User> {List <userListModel> selectUserListPage (pagination page, @param ("UserListModel> Pengguna); }Perlu dicatat di sini bahwa halaman pagination ini diperlukan, jika tidak MP tidak akan dapat menerapkan pagination untuk Anda.
<pilih id = "selectUserListPage" resultType = "com.web.member.model.userListModel"> pilih * dari ftms_user u meninggalkan ftms_user_level l pada u.level_id = l.id di mana 1 = 1 <if test = "user.nickname! </if> </ pilih>
3. Implementasi Layanan
impor com.web.member.beans.admin.userlistbean; impor com.web.member.entity.user; impor com.web.member.mapper.usermapper; impor com.web.member.model.userlistmodel; impor com.web.member com.baomidou.mybatisplus.service.impl.serviceImpl; impor org.springframework.stereotype.service; impor org.springframework.transaction.annotation.transactional;/** * <p> * Kelas implementasi layanan tabel pengguna * </p> p> @a.aUs; */@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Transactional(readOnly=true) @Override public Page<UserListModel> selectUserListPage(UserListBean user) { Page<UserListModel> page = new Page<>(user.getCurr(), user.getNums());// The current page, the total jumlah karakter dibangun. Objek halaman dikembalikan page.setrecords (this.basemapper.selectuserListPage (halaman, pengguna)); }}Akhirnya, atur hasil yang diatur ke objek halaman. Struktur JSON objek halaman adalah sebagai berikut
{"Total": 48, // Catatan Total "Ukuran": 10, // Berapa banyak "saat ini" yang ditampilkan per halaman: 1, // halaman saat ini "catatan": [// Hasil set array {...}, {...}, {...}, ...], "halaman": 5 // Total halaman {}, {...}, ...], "halaman": 5 // Total halaman {...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.