先添加依赖
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelper-spring-boot-starterartifactId>
<version>1.2.5version>
dependency>
其次, 配置文件
# PageHelper 分页插件配置
pagehelper:
helperDialect: mysql
reasonable=true
supportMethodsArguments: true
params=count: countSql
#pagehelper.params=count=countSql
每一个service(或mapper)方法执行查询前,调用一次 PageHelper.startPage(pageNum,pageSize) 来设置分页查询参数即可,其中pageNum 为记录页数,pageSize 为单页记录数量。此时service(或mapper)方法的查询结果就是分页后的结果了。
如果要获得相关的分页信息,还可以将查询结果封装到PageInfo对象中,以获得总页数、总记录数、当前页数等相关分页信息
@ResponseBody
@RequestMapping("/findPage")
public List<Student> findPage(@RequestParam int pageNum, @RequestParam int pageSize) {
// 设置分页查询参数
PageHelper.startPage(pageNum,pageSize);
List<Student> studentList = studentService.findList();
for(Student student : studentList) {
System.out.println("element : " + student);
}
// 封装分页查询结果到 PageInfo 对象中以获取相关分页信息
PageInfo pageInfo = new PageInfo( studentList );
System.out.println("总页数: " + pageInfo.getPages());
System.out.println("总记录数: " + pageInfo.getTotal());
System.out.println("当前页数: " + pageInfo.getPageNum());
System.out.println("当前页面记录数量: " + pageInfo.getSize());
return pageInfo.getList();
}
缓存的作用: 通过减少IO的方式,来提高程序的执行效率
常用的缓存技术有: 字符串常量池 , 整型数常量池 , 线程池 , 连接池
mybats的缓存存:将select语的查询结果放到到缓存(内存)
下次还是这条select的话,直接从缓存(内存)中取,不再从外存中查.
mybatis缓存包括:
缓存只针对于DQL语句,也就是说缓存机制只对应select语句.
一级缓存默认是开启的。不需要做任何配置
原理:只要使用同一个SqlSession对象执行同一条SQL语句,就会走缓存
可以看到 ,当使用同一个sqlSession对象执行相同的SQL语句时, 后台实际只执行了一次, 却输出了两条结果


二级缓存的范围是SqlSessionFactory。
使用二级缓存必须同时具备以下条件
只要两次查询之间出现了增删改操作。二级缓存就会失效。【一级缓存也会失效】
