软件编程
位置:首页>> 软件编程>> java编程>> MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

作者:旭东怪  发布时间:2021-08-12 09:52:55 

标签:MyBatis-Plus,分页

 1 MyBatisPlusConfig

MyBatisPlus配置类。


package com.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.*;

/**
* MyBatisPlus配置类
*/
@Configuration
public class MyBatisPlusConfig {

/**
    * MyBatisPlus * (用于分页)
    */
   @Bean
   public MybatisPlusInterceptor paginationInterceptor() {
       MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
       //添加MySQL的分页 *
       interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
       return interceptor;
   }
}

2 UserPagination

 用户查询条件类。


package com.entity;

import lombok.Data;

/**
* 查询条件
*/
@Data
public class UserPagination {
   /**
    * 当前页号
    */
   private int currentPage;
   /**
    * 每页显示条数
    */
   private int pageSize;
}

3 Mapper

3.1 UserMapper.java


package com.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.entity.UserEntity;
import com.entity.UserPagination;
import org.apache.ibatis.annotations.Mapper;

/**
* 用户信息dao层
*/
@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {
   /**
    * 获取用户信息(SQL查询分页)
    *
    * @param page 分页条件
    * @return
    */
   Page<UserEntity> getUserListBySQLPage(Page<UserEntity> page);
}

3.2 UserMapper.xml


<?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" >
<mapper namespace="com.mapper.UserMapper">
   <select id="getUserListBySQLPage" resultType="com.entity.UserEntity">
       SELECT *
       from users
   </select>
</mapper>

4 Service

4.1 UserService


package com.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.entity.*;

public interface UserService extends IService<UserEntity> {
   /**
    * 获取用户信息(QueryWrapper查询分页)
    *
    * @param pagination 查询条件
    * @return
    */
   Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination);

/**
    * 获取用户信息(SQL查询分页)
    *
    * @param pagination 查询条件
    * @return
    */
   Page<UserEntity> getUserListBySQLPage(UserPagination pagination);
}

4.2 UserServiceImpl


package com.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.entity.*;
import com.mapper.UserMapper;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {
  @Autowired
  private UserMapper userMapper;
   /**
    * 获取用户信息(QueryWrapper查询分页)
    *
    * @param pagination 查询条件
    * @return
    */
   public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {
       QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
       Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
       return this.page(page, queryWrapper);
   }

/**
    * 获取用户信息(SQL查询分页)
    *
    * @param pagination 查询条件
    * @return
    */
   @Override
   public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {
       Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
       return userMapper.getUserListBySQLPage(page);
   }
}

5 UserController

调试代码。


package com.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.entity.*;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class UserController {
   @Autowired
   private UserService userService;

/**
    * 获取用户信息(QueryWrapper查询分页)
    *
    * @return
    */
   @GetMapping("/getUserListByQueryWrapperPage")
   public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {
       return userService.getUserListByQueryWrapperPage(pagination);
   }

/**
    * 获取用户信息(SQL查询分页)
    *
    * @return
    */
   @GetMapping("/getUserListBySQLPage")
   public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {
       return userService.getUserListBySQLPage(pagination);
   }

}

6 调试结果 

6.1 QueryWrapper查询分页

MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

6.2 SQL查询分页 

 MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

 注:

更多MyBatis-Plus的配置请查看以下博客。

Spring Boot 配置MyBatis-Plus(实现查询、新增、更新、删除)

来源:https://blog.csdn.net/qq_38974638/article/details/119720371

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com