mybatis分页插件的基本理解和使用
为什么要使用mybatis分页插件?
分页是一种将所有数据分段展示给用户的技术。用户每次看到的不是全部数据,而是其中一部分,如果在其中没有找到自己想要的内容,用户可以通过制定页码或者是翻页的方式转换可见内容,直到找到自己想要的内容为止。
分页的好处:
1、分页能提高性能,一次查20个和一次性查询2000个的性能肯定更好;其次就是如果数据量很庞大,一次性将内容查询出来,查询出来的结果是放在内存里面的,会增加cpu的开销造成内存的浪费,效率极为低。
2、为了展现层考虑:如果一次展现太多,不管是排版和美观上都不是很好。
下面根据示例来理解分页插件的使用:
在pom.xml引入分页插件
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
在config文件中配置分页(放在environments之前)
<!-- 配置分页-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
在StudentMapper接口中定义方法
List<Student> getAllStudent();
在StudentMapper配置中添加内容
<select id="getAllStudent" resultType="Student" useCache="true">
select * from student
</select>
测试:
@Test
public void t03(){
//设置当前页码及每页显示条数
PageHelper.startPage(1,2);
SqlSession sqlSession = sqlSessionUtil.getSqlSession();
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
List<Student> list = studentMapper.getAllStudent();
//从查到的数据中取到当页数据,生成pageInfo对象
PageInfo<Student> pageInfo = new PageInfo<>(list);
//获取当页数据
List<Student> studentList = pageInfo.getList();
//遍历输出当前页的所有数据
studentList.forEach(System.out::println);
//总数据条数
long total = pageInfo.getTotal();
System.out.println("总数据条数有:"+total);
//总页数
int totalPage = pageInfo.getPages();
System.out.println("总页数有:"+totalPage);
sqlSession.close();
}
运行结果: