至少使用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();
}
}
|