springboot3分页插件使用

今天写代码遇到了一个特别的傻逼的问题,那就是我在使用springboot3的时候,使用pagehelper进行分页设置的时候,总是不生效,我非常纳闷我检查了maven 的依赖,application.yml的配置文件,感觉都是没有问题但是分页插件的效果却总是不出来,后来通过我的老师的排查,发现是我的maven版本不对,我用的版本是1.3.0版本的pagehelper的mavend的依赖,但是这个版本pagehelper是不支持springboot3的,于是我在找到github上找到适合springboot3pagehelper的插件坐标

用了这个版本的插件立刻就能用了,

这个是我的application.yml配置文件:

也顺便给大家看一下完整的mybaties使用分页插件的流程献丑;

mapper层的代码:

package com.gfxy.myapp.mapper;

import com.gfxy.myapp.pojo.MyApp;
import org.apache.catalina.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

@Mapper
public interface MyAppMapper {

//        @Select("select * from my_app")
        public List<MyApp> list();

        @Insert("insert into my_app values (#{id},#{name},#{addr},#{age},#{birth},#{sex})")
        public void add(MyApp myApp);

        @Delete("delete from my_app where id = #{id} ")
        public void del(String id);

        public void update(MyApp myApp);

        @Select("select * from my_app where id =#{id}")
        public MyApp getMyAppId(String id);

}

这个是service上实现的代码

package com.gfxy.myapp.service;

import com.gfxy.myapp.pojo.MyApp;
import com.github.pagehelper.Page;
import org.apache.catalina.User;

import java.util.List;

public interface MyAppService {
    public void del(String id);

    public void add(MyApp myApp);
    public Page<MyApp> list(int pageNum, int pageSize);


    public void update(MyApp myApp);

    public MyApp getMyApp(String id);
}

其实现类:

package com.gfxy.myapp.service.Impl;

import com.gfxy.myapp.mapper.MyAppMapper;
import com.gfxy.myapp.pojo.MyApp;
import com.gfxy.myapp.service.MyAppService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.UUID;

@Service
public class MyAppServiceImpl implements MyAppService {
    @Autowired
    MyAppMapper myAppMapper;
    @Override
    public void del(String id) {
        myAppMapper.del(id);
    }

    @Override
    public void add(MyApp myApp) {
        String string = UUID.randomUUID().toString();
        myApp.setId(string);
        myAppMapper.add(myApp);
    }

    @Override
    public Page<MyApp> list(int pageNum, int pageSize) {
        //设置分页查询的参数属性
        PageHelper.startPage(pageNum,pageSize);
        List<MyApp> list = myAppMapper.list();
        Page<MyApp> pageInfo = (Page<MyApp>) list;
        return pageInfo;
    }
    @Override
    public void update(MyApp myApp) {
        myAppMapper.update(myApp);
    }

    @Override
    public MyApp getMyApp(String id) {
        return myAppMapper.getMyAppId(id);
    }
}

最后在controller类返回前端的代码

  @GetMapping("/getUser/{pageNum}/{pageSize}")
    public PageBean getUsers(@PathVariable(value = "pageNum") int pageNum,
                             @PathVariable(value = "pageSize") int pageSize) {
        log.info("已被访问,{},{}", pageNum, pageSize);
        Page<MyApp> page = myAppService.list(pageNum, pageSize);
        pageBean = new PageBean();
        pageBean.setTotal(page.getTotal());
        pageBean.setRoews(page.getResult());
        pageBean.setMyApps(page.getResult());
        // 返回JSON格式的结果给前端
        return pageBean;
    }

最后前端收到的数据:

其实在springboot中使用pagehelper是特别简单的,我们在maven引入合适版本的依赖后,在配置文件中写好配置,在service的实现类中就可以编写代码了,

pagehelper使用的时候在在mapper查询语句的上面PageHelper.startPage(pageNum,pageSize);这个就是设置分页查询的代码了,其中pageNum参数是设置查询第几页的数据集,pageSize是设置一页有多少条数据,这两个参数通常是前端传给后端contronler层参数在通过contronller层传递给setrvice实现类中的,通过分页查询大大的简化了编写数据库sql查询语句的繁杂,不过要注意的是设置完分页属性的条件后是只对第一次mapper Sql语句查询是有效的所以在开发的时候要注意,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值