本文共 3083 字,大约阅读时间需要 10 分钟。
我们在上一篇整合SpringBoot的基础之上,再进行PageHelper分页插件的实验。
首先我们先在数据库内准备一些用于测试的数据
pom文件引入pagehelper-spring-boot-starter
com.github.pagehelper pagehelper-spring-boot-starter 1.2.10
配置文件application.properties对PageHelper插件进行配置
#配置PageHelper# 数据库方言pagehelper.helper-dialect=mysql# 判断合理性比如负数和超过最大总数pagehelper.reasonable=true# 支持方法参数pagehelper.support-methods-arguments=true
配置完毕,我们可以使用PageHelper了,在UserService中定义一个需要进行分页的方法
public MaplistUser(User user, int pageNum, int pageSize) { Map result = new HashMap (); //只对该语句后的第一个查询语句得到的数据进行分页 Page page=PageHelper.startPage(pageNum, pageSize); List list = userMapper.listUser(user); result.put("data", list); result.put("pages", page.getTotal()); return result;}
如上所示,我们在需要进行分页的持久层方法userMapper.listUser(user)上面,添加一行代码分页的代码
Page page=PageHelper.startPage(pageNum, pageSize);
UserMapper.xml不需要进行特殊的处理,只需编写正常的查询SQL
准备完毕,我们可以进行单元测试了
@Testpublic void listUser() { User user =new User(); user.setName("test"); Mapresult=userService.listUser(user,1,5); List list =(List ) result.get("data"); for(User u:list){ log.info("u:"+u); } log.info("pages:"+result.get("pages")); }
查看结果
2018-12-06 09:20:19.768 DEBUG 2484 --- [ main] com.yj.dao.UserMapper.listUser_COUNT : ==> Preparing: SELECT count(0) FROM user WHERE name LIKE concat('%', ?, '%') 2018-12-06 09:20:19.913 DEBUG 2484 --- [ main] com.yj.dao.UserMapper.listUser_COUNT : ==> Parameters: test(String)2018-12-06 09:20:19.930 DEBUG 2484 --- [ main] com.yj.dao.UserMapper.listUser_COUNT : <== Total: 12018-12-06 09:20:19.933 DEBUG 2484 --- [ main] com.yj.dao.UserMapper.listUser : ==> Preparing: select id, name,age from user WHERE name like concat('%',?,'%') order by id LIMIT ? 2018-12-06 09:20:19.937 DEBUG 2484 --- [ main] com.yj.dao.UserMapper.listUser : ==> Parameters: test(String), 5(Integer)2018-12-06 09:20:19.940 DEBUG 2484 --- [ main] com.yj.dao.UserMapper.listUser : <== Total: 52018-12-06 09:20:19.942 INFO 2484 --- [ main] com.yj.service.UserServiceTest : u:User [id=1, name=test1, age=18]2018-12-06 09:20:19.943 INFO 2484 --- [ main] com.yj.service.UserServiceTest : u:User [id=2, name=test2, age=18]2018-12-06 09:20:19.944 INFO 2484 --- [ main] com.yj.service.UserServiceTest : u:User [id=3, name=test3, age=18]2018-12-06 09:20:19.944 INFO 2484 --- [ main] com.yj.service.UserServiceTest : u:User [id=4, name=test4, age=18]2018-12-06 09:20:19.944 INFO 2484 --- [ main] com.yj.service.UserServiceTest : u:User [id=5, name=test5, age=18]2018-12-06 09:20:19.944 INFO 2484 --- [ main] com.yj.service.UserServiceTest : pages:14
这样,我们就利用PageHelper分页插件,实现了数据的查询和数据总数的查询
转载地址:http://hpsjn.baihongyu.com/