分页查询的实现有两种方式
- 直接在sql中使用 limit子句 进行分页查询
select * from tableA limit 5,5;
2.使用第三方库进行分页查询
PageHelper在SpringBoot中的使用
1:pom.xml中导入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
注意导入的依赖是spring版本的而不是其独立版本,否则pagehelper将不起作用
2:在springboot配置文件(applicable.yml)中声明插件
#pagehelper分页插件配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
3.在业务代码中使用
UserMapper:
@Repository
@Mapper
public interface UserMapper {
public List<User> selectAll();
}
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springboot.springboot_mybatis.mapper.UserMapper">
<select id="selectAll" resultType="User">
select * from user
</select>
</mapper>
UserserviceImpl:
@Service
public class QueryUser2 implements Query2 {
@Autowired
UserMapper userMapper;
@Override
public List<User> selectAll(int pageNum,int pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<User> users = userMapper.selectAll();
PageInfo<User> pageInfo = new PageInfo<>(users);
return pageInfo.getList();
}
}
注意:只有紧跟着PageHelper.startPage(pageNum,pageSize)的sql语句才被pagehelper起作用
Usercontroller:
@RestController
public class controller3 {
@Autowired
Query2 query2;
@GetMapping("/selectAll")
public List<User> selectAll(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize){
List<User> users = query2.selectAll(pageNum,pageSize);
return users;
}
}