关于pagehelper插件的问题

重点:
pagehelper 1.4.2不支持强制转换;
解决方法:直接将mapper中的类型改成Page。sevice层中则直接用page类型接收数据,不用list。

pagehelper 1.4.6不持强制转换;
如果mapper类型为list,则在sevice中需要将list强制转换为page

springboot版本在3以上,pagehelper版本要在1.4.6以上!

package com.itheima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.mapper.EmpMapper;
import com.itheima.pojo.Emp;
import com.itheima.pojo.PageBean;
import com.itheima.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDate;

@Service
public class EmpServiceImpl implements EmpService{

    @Autowired
    private EmpMapper empMapper;

    @Override
    /*这个注解的作用是告诉编译器,你打算重写父类中的方法,建议在覆盖方法时使用它,因为它可以提高代码的可读性和可维护性。
    @Override注解可以帮助你避免由于方法签名不匹配而引起的错误*/
    public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {
        /**
        //1.获取总记录数
        Long count = empMapper.count();
        //2.获取结果列表
        Integer start = (page-1) * pageSize;  //获取开始索引
        List<Emp> empList = empMapper.page(start, pageSize);
        **/

         //1.设置分页参数
        PageHelper.startPage(page,pageSize);
        //2.执行查询 重点:不用强制转换,直接将mapper中的类型改成Page。如果类型为list,则需要强制转换,且pagehelper类型要是1.4.6
        Page<Emp> p = empMapper.list(name, gender, begin, end);
        //Page<Emp> p = (Page<Emp>) empList;

        /* 3.封装pagebean对象 */
        PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
        return pageBean;
    }

}



package com.itheima.mapper;

import com.github.pagehelper.Page;
import com.itheima.pojo.Emp;
import org.apache.ibatis.annotations.Mapper;

import java.time.LocalDate;

@Mapper
public interface EmpMapper {
   /*查询总记录数
    @Select("select count(*) from emp")
    public Long count();

    分页查询,获取查询数据
    @Select("select * from emp limit #{strat},#{pageSize}")
    public List<Emp> page(Integer strat,Integer pageSize);
   */

    //员工信息查询
    //@Select("select * from emp")
    public Page<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值