分页功能 mybatis-plus + 自定义sql

分页

分页要点:

  1. 要设置传入的参数(page,pagesize) 【 page(页码),pageSize(每页显示的条数)】

    • page:页数(第几页)
    • size:显示个数(一页显示多少条信息)
      • 之间的关系是:start=(page-1)*pagesize 【start:从第几个数据开始显示】 对应 limit:start,pagesize 注意:start从0开始
  2. 当没有传入参数时,要设定默认值:

    • page=1 (第一页)
    • pagesize=10 (一页显示10条信息,也可以设定其他值)
  3. 用户输入的是 page 和 pageSize,我们要用代码将 page 转化成mysql的语句中的 limit 的 start值。

在接口中进行(HomeController)

  1. 默认值设置
  2. 参数值的转换处理(page-----start)
@GetMapping("/goods")
    public Response<List<Goods>> getGoods(@RequestParam(name = "page", defaultValue = "1") Integer pagenum,
                                          @RequestParam(name = "size",defaultValue = "1") Integer size)
    {
        Integer page = (pagenum-1)*size;   //转换
        List<Goods> goodsList = goodsService.getGoods(page, size);
        return Response.success(goodsList);
    }
  1. 写Mapper接口 (GoodsMapper)
public interface GoodsMapper extends BaseMapper<Goods> {

    List<Goods> getGoods(@Param("page") Integer page,
                         @Param("size") Integer size);
}
  1. 写自定义sql,在sql中设置分页 (goodsMapper.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.lzp.liugiveproject.model.mapper.GoodsMapper">
<!--上面是头文件-->
    
    <select id="getGoods"  resultType="com.lzp.liugiveproject.model.entity.Goods">
        select * from lgp_goods limit #{page},#{size}
    </select>

</mapper>
  1. 写service接口(GoodsService)
public interface GoodsService {

    List<Goods> getGoods(Integer page, Integer size);
}
  1. 写service接口实现类(GoodsServiceImpl)
@Service("GoodsService")
public class GoodsServiceImpl implements GoodsService {

    @Resource
    private GoodsMapper goodsMapper;

    //实例化配置文件类
    @Autowired
    private Image image;   


    @Override
    public List<Goods> getGoods(Integer page, Integer size) {

        List<Goods> goodsLsit = goodsMapper.getGoods(page, size);
        return goodsLsit;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值