赞
踩
今天写代码遇到了一个特别的傻逼的问题,那就是我在使用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语句查询是有效的所以在开发的时候要注意,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。