PageHelper分页
至少使用JDK8版本,请下载JDK8或者更高版本: 下载以及配置JDK环境
因为是第三方插件,所以需要额外的jar包,都在右上角提供了下载:pagehelper-5.1.0-beta2.jar,jsqlparser-1.0.jar
配置插件
在mybatis-config.xml中,添加15-19行的代码,表示开启PageHelper插件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration> <settings> <!-- 打开延迟加载的开关 --> <setting name= "lazyLoadingEnabled" value= "true" /> <!-- 将积极加载改为消息加载即按需加载 --> <setting name= "aggressiveLazyLoading" value= "false" /> </settings> <typeAliases> < package name= "com.how2java.pojo" /> </typeAliases> <plugins> <plugin interceptor= "com.github.pagehelper.PageInterceptor" > </plugin> </plugins> <environments default = "development" > <environment id= "development" > <transactionManager type= "JDBC" /> <dataSource type= "POOLED" > <property name= "driver" value= "com.mysql.jdbc.Driver" /> <property name= "url" value= "jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8" /> <property name= "username" value= "root" /> <property name= "password" value= "admin" /> </dataSource> </environment> </environments> <mappers> <mapper resource= "com/how2java/pojo/Category.xml" /> <mapper class = "com.how2java.mapper.CategoryMapper" /> <mapper class = "com.how2java.mapper.ProductMapper" /> </mappers> </configuration> |
分页查询
查询很有意思,只需要在执行查询所有的调用之前,执行一条语句即可:
PageHelper.offsetPage(0, 5);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package com.how2java; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.github.pagehelper.PageHelper; import com.how2java.pojo.Category; public class TestMybatis { public static void main(String[] args) throws IOException, InterruptedException { String resource = "mybatis-config.xml" ; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); PageHelper.offsetPage( 0 , 5 ); List<Category> cs = session.selectList( "listCategory" ); for (Category c : cs) { System.out.println(c.getName()); } session.commit(); session.close(); } } |
获取总数
通过第31行的代码
就可以获取分页信息,包括总数以及其他的
PageInfo page= new PageInfo<>(cs);
就可以获取分页信息,包括总数以及其他的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package com.how2java; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.how2java.pojo.Category; public class TestMybatis { public static void main(String[] args) throws IOException, InterruptedException { String resource = "mybatis-config.xml" ; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); PageHelper.offsetPage( 0 , 5 ); List<Category> cs = session.selectList( "listCategory" ); for (Category c : cs) { System.out.println(c.getName()); } PageInfo pageInfo = new PageInfo<>(cs); System.out.println( "总数:" +pageInfo.getTotal()); System.out.println(pageInfo); session.commit(); session.close(); } } |