分页查询(通过mysql的基础实现分页查询)
(一:)在mapper中创建UserMapper.class实现方法
List<User> selectPage(Integer pageNum,Integer pageSize,String username);
Integer total(String username);
(二)在mapper.*中实现sql查询
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hailong.dao.UserDao">
<select id="selectPage" resultType="com.hailong.pojo.User">
select * from sys_user where username like concat('%',#{username},'%') limit #{pageNum},#{pageSize}
</select><!--通过limit关键字实现分页功能-->
<select id="total" resultType="java.lang.Integer">
select count(*) from sys_user where username like concat('%',#{username},'%');
</select><!--查询总数-->
</mapper>
(三:)在controller中编写具体的方法:其中,pageNum为起始页,pageSize为一页的展示条数
@GetMapping("/page")
public Map<String,Object> findPage(@RequestParam Integer pageNum,
@RequestParam Integer pageSize,
@RequestParam String username){
pageNum = (pageNum - 1)* pageSize; //RequestParam接收?pageNum=1&pageSize=10;
Map<String,Object> res = new HashMap<>();
List<User> data = userDao.selectPage(pageNum,pageSize,username);
Integer total = userDao.total(username);
res.put("data",data);
res.put("total",total);
return res;
}
注://结论:limit第一个参数 =(pageNum - 1)* pageSize
(四:)通过前端传输的pageSize和pageNum进行分页查询,前端传输的username是在前端进行模糊查询时使用的,当前端进行搜索时,对查询出的数据进行分页