MybatisPlus学习之(三)分页功能

一.mybatisplus插件
微服务项目中把MybatisplusConfig配置放在common包下,因为属于公共功能
@EnableTransactionManagement
@Configuration
@MapperScan("com.baomidou.cloud.service.*.mapper*")
public class MybatisplusConfig {
    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // paginationInterceptor.setLimit(你的最大单页限制数量,默认 500 条,小于 0 如 -1 不受限制);
        return paginationInterceptor;
    }
}
二.Controller层

@RestController
@RequestMapping(value = "/user")
public class UserController {

    @Autowired
    private IUserService userService;
    
    @GetMapping("/list")
    public R<Page<User>> listBySendTime(){
        //调用service层
        Page<User> userPage = userService.listBySendTime();
        return R.ok(userPage);
    }
}
三.service层

service层

public interface IUserService extends IService<User> {
    //分页查询
    Page<User> listBySendTime();
}

serviceImpl层

@Service
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements IUserService {

    @Resource
    private UserDao userDao;

    @Override
    public Page<User> listBySendTime(){
        //获取今天的日期
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        //获取前一天日期
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        Date dateBefore = calendar.getTime();
        //获取 后一天日期
        calendar.add(Calendar.DAY_OF_MONTH, +2);
        Date dateAfter = calendar.getTime();


        //查询今天发车的订单
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.between("send_time", dateBefore, dateAfter);

        //分页操作,查询第1页,每页5条记录
        Page<User> page = new Page<>(1,5);

        Page<User> userPage = (Page<User>) userDao.selectPage(page, queryWrapper);
        userPage.getRecords().forEach(ts -> {
            ts.setStateName(UserState.NO_SEND.getName(ts.getStateValue()));
        });
        return  userPage;
    }
}
四.dao层不用做任何操作
@Mapper
public interface UserDao extends BaseMapper<User> {
}
五.自定义封装page类,添加字段
仿造page类的写法,将page类全部换成UserPage
public class UserPages<T> extends Page<T> {
    //待入库状态
    private Long isNotIn;
    //正在入库状态,total指的是查询出来所有的记录数量
    private Long isBeingIn;

    //构造函数,自定义传入的参数
    public UserPages(long isNotIn, long isBeingIn, long current, long size){
        super(current, size);
        this.isBeingIn = isBeingIn;
        this.isNotIn = isNotIn;
    }


    public Long getIsNotIn() {
        return isNotIn;
    }

    public void setIsNotIn(Long isNotIn) {
        this.isNotIn = isNotIn;
    }

    public Long getIsBeingIn() {
        return isBeingIn;
    }

    public void setIsBeingIn(Long isBeingIn) {
        this.isBeingIn = isBeingIn;
    }
}

分页操作变化:多了两个参数传进来,利用Postman验证时,分页数据会多两个信息,即isNotIn, isBeingIn字段

 //分页操作,查询第1页,每页5条记录
 UserPage<User> page = new UserPage<>(isNotIn, isBeingIn, 1, 5);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值