Dans la section précédente, il parle brièvement de la construction et de l'utilisation de Mybatis-plus. Dans cette section, il explique brièvement sur la façon d'utiliser MP pour implémenter une pagination multi-table.
analyser
Le projet utilisé est toujours à printemps. En ce qui concerne la pagination, le site officiel donne une démo d'une seule table. En fait, le principe de mise en œuvre de la pagination multi-table est le même, et ils sont tout au long de MyBatis Interceptor
(Que fait l'intercepteur? Il fera quelque chose pour vous avant que votre SQL ne soit exécuté, comme la pagination. Nous utilisons MP et nous ne nous soucions pas de Limit. L'intercepteur le dépensé pour nous. Nous ne nous soucions pas du nombre select count(*) de caractères. Après l'objet d'intercepteur).
accomplir
1. Configurez l'intercepteur
@ IableTransactionManagement @ configuration @ mapperscan ("com.web.member.mapper") classe publique MyBatisPlusConfig {/ ** * MyBatis-Plus Plug-in Perging Efficacité d'exécution [peut être désactivé dans l'environnement de production] * / @Bean Public Performance Interceptor PerformanceInterceptor () {return New Performance Interceptor (); } / * * Plug-in de pagination, identifiant automatiquement les multi-locataires dans le type de base de données, veuillez vous référer au site officiel [extension du plugin] * / @Bean Public PaginationInterceptor PaginationInterceptor () {return new PaginationInterceptor (); }} 2. Interface de mapper et XML
/ ** * <p> * Interface de mappeur de table utilisateur * </p> * * @author yin tianwen * @Since 2018-06-01 * / interface publique UserMapper étend BasEmapper <User> {list <userListModel> SelectUserListPage (page de pagination, @ param ("utilisateur") UserListBean User); }Il convient de noter ici que cette page de pagination est nécessaire, sinon MP ne pourra pas implémenter une pagination pour vous.
<select id = "selectUserListpage" resultType = "com.web.member.model.userlistmodel"> sélectionner * dans ftms_user u Left join ftms_user_level l sur u.level_id = l.id où 1 = 1 <if test = "user.nickname! = null"> et u.nickname like "%" # # # # # #NICKNAM </ if> </lect>
3. Implémentation du service
import com.web.member.beans.admin.userlistbean; import com.web.member.entity.user; import com.web.member.mapper.userper; import com.web.member.model.userlistmodel; import com.web.member.service.uservice; importer com.baumidou.mybatisplus.pluger. com.baomidou.mybatisplus.service.impl.serviceImpl; import org.springframework.sterreotype.service; import org.springframework.transaction.annotation.transactional; / ** * <p> * Tableau d'utilisateur Classe de mise en œuvre * </p> * * @Autor yin Tianwen * @Since 2018-06-01 * / @ ServicePublic Class UserserviceImpl étend ServiceImpl <UserMapper, utilisateur> implémente userService {@Transactional (readOnly = true) @Override Public Page <UserListModel> page = nouvelle page <> (user.getCurr (), user.getNUMS ()); construit. L'objet page est renvoyé page.setRecords (this.basemapper.SelectUserListPage (page, utilisateur)); }}Enfin, définissez le résultat Résultat dans l'objet page. La structure JSON de l'objet Page est la suivante
{"Total": 48, // Total Records "Taille": 10, // Combien de "courant" sont affichés par page: 1, // Page en cours "enregistrements": [// Set Set Array {...}, {...}, {...}, ...], "pages": 5 // Pages totaux}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.