mybatis分页
2022-07-03 本文已影响0人
晓晓_1931
一、sql语句分页:
在mapper.xml文件添加sql语句
<select id="getEmpByLimit" parameterType="map" resultType="Emp">
select * from emp order by empno limit #{startIndex},#{pageSize}
</select>
在接口中添加方法:
List<Emp> getEmpByLimit(Map<String, Integer> map);
在测试类中添加:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("startIndex",0);//从0开始
map.put("pageSize",3);//每页条数
List<Emp> empList = mapper.getEmpByLimit(map);
for (Emp emp : empList) {
System.out.println(emp);
}
二、RowBounds方式:
在mapper.xml文件添加sql语句
<select id="getEmpByBounds" resultType="Emp">
select * from emp order by empno
</select>
在接口中添加方法:
List<Emp> getEmpByBounds(RowBounds rowBounds);
在测试类中添加:
int n = 1; //表示从第几页数据开始
int pageSize = 5;//连续取出几条数据
int start = (n - 1)* pageSize; //n 当前页
RowBounds rowBounds = new RowBounds(start, pageSize );
List<Emp> list = mapper.getEmpByBounds(rowBounds);
for (Emp user : list) {
System.out.println(user);
}
三、PageHelper
pom文件中添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.5</version>
</dependency>
mybatis配置文件中添加插件
<!-- 插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
</plugin>
</plugins>
在mapper.xml文件添加sql语句
<select id="getEmpByPageHelper" resultType="Emp">
select * from emp order by empno
</select>
在接口中添加方法:
List<Emp> getEmpByPageHelper();
在测试类中添加:
Page<Object> startPage = PageHelper.startPage(1, 5);
List<Emp> empList = mapper.getEmpByPageHelper();
for (Emp emp : empList) {
System.out.println(emp);
}
System.out.println("总条数"+startPage.getTotal());
System.out.println("当前页码"+startPage.getPageNum());
System.out.println("每页的记录数"+startPage.getPageSize());
System.out.println("总页码"+startPage.getPages());
//用PageInfo对结果进行包装
PageInfo<Emp> page = new PageInfo<Emp>(empList);
//测试PageInfo全部属性
//PageInfo包含了非常全面的分页属性
System.out.println("当前页码"+ page.getPageNum()) ; //
System.out.println("每页的记录数"+ page.getPageSize()) ; //
System.out.println("起始行"+ page.getStartRow()) ; //
System.out.println("尾行"+ page.getEndRow() ) ; //
System.out.println("总条数"+ page.getTotal() ) ;//
System.out.println("总页码"+ page.getPages() ) ; //
System.out.println("第一页"+ page.getFirstPage()) ; //
System.out.println("最后一页"+ page.getLastPage() ) ; //
System.out.println("是第一页"+ page.isIsFirstPage() ) ; //
System.out.println("是最后一页"+ page.isIsLastPage() ) ; //
System.out.println("有上一页"+ page.isHasPreviousPage() ) ; //
System.out.println("有下一页"+ page.isHasNextPage()) ; //
四、springboot+mybatis分页
pom文件中添加依赖
<!--添加mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
在文件中加:
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/elm?characterEncoding=utf-8
driver-class-name: com.mysql.jdbc.Driver
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
在controller中
PageHelper.startPage(1, 1);