SpringBoot---MyBatis (pagehelper 分页插件使用案例)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lhh143400/article/details/102761068

1.pom  文件

<!-- 分页插件 -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.12</version>
</dependency>
2.application-dev.properties 
#================ mybatis pagehelper ==============#
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

3.分页查询返回实体类

import com.github.pagehelper.PageInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 分页查询返回实体类
 *
 * @author lhh
 * @Date 2019/10/26 20:46
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageModel<T> implements Serializable{

    /**
     * 当页数据
     */
    private List<T> list;
    /**
     * 数据总条数
     */
    private Long totalNum;


 public PageModel(List<T> list, PageInfo pageInfo){
    this.list=list;
    this.totalNum=pageInfo.getTotal();
  }
}

4.分页排序入参

import lombok.Data;

/**
 * 分页排序入参
 *
 * @author lhh
 * @Date 2019/10/26 20:58
 */
@Data
public class PageVo {

    /**
     * 页码,从1开始
     */
    private int page = 1;
    /**
     * 页面大小
     */
    private int size = 10;
  
}

5.控制层

import com.alibaba.fastjson.JSON;
import com.lhh.springboot.config.mybatis.PageVo;
import com.lhh.springboot.oauth.service.SysUserService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author lhh
 * @Date 2019/10/26 15:29
 */
@RestController
@RequestMapping("/sys_user")
public class SysUserController {

    @Autowired
    private SysUserService sysUserService;

    @ApiOperation(value = "测试mybatis分页插件",method = RequestMethod.POST)
    @RequestMapping("/findByPage")
    public String findByPage(PageVo vo) {

        return JSON.toJSONString(sysUserService.findByPage(vo));
    }
}

6.server层

import com.lhh.springboot.config.mybatis.PageModel;
import com.lhh.springboot.config.mybatis.PageVo;
import com.lhh.springboot.oauth.pojo.SysUser;

/**
 * @author lhh
 * @Date 2019/10/26 15:30
 */
public interface SysUserService {

    /**
     * 分页查询
     *
     * @param vo 分页入参
     * @return
     */
    PageModel<SysUser> findByPage(PageVo vo);
}

7.serviceImpl 实现层

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lhh.springboot.config.mybatis.PageModel;
import com.lhh.springboot.config.mybatis.PageVo;
import com.lhh.springboot.oauth.dao.SysUserMapper;
import com.lhh.springboot.oauth.pojo.SysUser;
import com.lhh.springboot.oauth.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author lhh
 * @Date 2019/10/26 15:31
 */
@Service
public class SysUserServiceImpl implements SysUserService {

    @Autowired
    private SysUserMapper sysUserMapper;


    /**
     * 分页查询
     *
     * @param vo 分页入参
     * @return
     */
    @Override
    public PageModel<SysUser> findByPage(PageVo vo) {

        PageHelper.startPage(vo.getPage(), vo.getSize());
        List<SysUser> list = sysUserMapper.findPage();
        PageInfo<SysUser> pageInfo = new PageInfo<>(list);

        return new PageModel<>(list, pageInfo);
    }
}

8.使用swagger2 测试

猜你喜欢

转载自blog.csdn.net/lhh143400/article/details/102761068