Mybatis使用分页插件实现分页操作

mybatis实现分页操作

首先导入pagehelper插件

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.7</version>
</dependency>

然后封装一个PageBean

package com.oxyx.pojo;
​
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
​
import java.util.List;
​
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    private Long total;
    private List<Emp> pageSize;
​
}

接下来就是mapper接口直接正常查询就行

package com.oxyx.mapper;
​
import com.oxyx.pojo.Emp;
import com.oxyx.pojo.PageBean;
​
import java.util.List;
​
public interface EmpMapper {
​
​
    List<Emp> page();
​
​
}
​

当然别忘了mapperXML文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<mapper namespace="com.oxyx.mapper.EmpMapper">
​
​
<!--    List<Emp> page(Integer page,Integer pageSize);-->
    <select id="page" resultType="emp" >
        select * from emp
    </select>
​
</mapper>

重点来了现在service声明一个接口,然后编写实现类

package com.oxyx.service;
​
import com.oxyx.pojo.PageBean;
​
public interface EmpService {
​
    PageBean page(Integer page, Integer pageSize);
}
package com.oxyx.service.impl;
​
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.oxyx.mapper.EmpMapper;
import com.oxyx.pojo.Emp;
import com.oxyx.pojo.PageBean;
import com.oxyx.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
​
import java.util.List;
​
@Service
public class EmpServiceImpl implements EmpService {
​
    @Autowired
    private EmpMapper empMapper;
​
    @Override
    public PageBean page(Integer page, Integer pageSize) {
​
        PageHelper.startPage(page,pageSize);
​
        List<Emp> empList = empMapper.page();
        Page<Emp> p = (Page<Emp>) empList;
​
​
        PageBean pageBean = new PageBean(p.getTotal(),p.getResult());
​
        return pageBean;
    }
}

最后就是controller的编写 没啥好说的

package com.oxyx.controller;

import com.oxyx.pojo.PageBean;
import com.oxyx.service.EmpService;
import com.oxyx.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("emp")
@Slf4j
public class EmpController {

    @Autowired
    private EmpService empService;

    @GetMapping("all")
    public Result queryPage(@RequestParam(defaultValue = "1",required = false) Integer page,
                            @RequestParam(defaultValue = "10",required = false) Integer pageSize) {

        PageBean pageBean = empService.page(page,pageSize);
        log.info("pageBean={}",pageBean);

        return Result.success(pageBean);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值