好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Spring集成PageHelper的简单用法示例

1、maven依赖,注意使用pagehelper时的版本必须与mybatis版本对应

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<!-- 添加mybatis依赖 -->

     <dependency>

       <groupid>org.mybatis</groupid>

       <artifactid>mybatis</artifactid>

       <version> 3.3 . 0 </version>

     </dependency>

     <dependency>

       <groupid>org.mybatis</groupid>

       <artifactid>mybatis-spring</artifactid>

       <version> 1.2 . 3 </version>

     </dependency>

     <!-- pagehelper -->

     <dependency>

       <groupid>com.github.pagehelper</groupid>

       <artifactid>pagehelper</artifactid>

       <version> 4.1 . 4 </version>

     </dependency>

2、需要在mybatis的配置信息中使用pagehelper插件,mybatis-config.xml

?

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

<?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>

   <plugins>

     <plugin interceptor= "com.github.pagehelper.pagehelper" >

       <!--指明数据库 4.0 . 0 以后不需要设置此属性-->

       <property name= "dialect" value= "mysql" />

       <!-- 该参数默认为 false -->

       <!-- 设置为 true 时,会将rowbounds第一个参数offset当成pagenum页码使用 -->

       <!-- 和startpage中的pagenum效果一样-->

       <property name= "offsetaspagenum" value= "true" />

       <!-- 该参数默认为 false -->

       <!-- 设置为 true 时,使用rowbounds分页会进行count查询 -->

       <property name= "rowboundswithcount" value= "true" />

       <!-- 设置为 true 时,如果pagesize= 0 或者rowbounds.limit = 0 就会查询出全部的结果 -->

       <!-- (相当于没有执行分页查询,但是返回结果仍然是page类型)-->

       <property name= "pagesizezero" value= "true" />

       <!-- 3.3 . 0 版本可用 - 分页参数合理化,默认 false 禁用 -->

       <!-- 启用合理化时,如果pagenum< 1 会查询第一页,如果pagenum>pages会查询最后一页 -->

       <!-- 禁用合理化时,如果pagenum< 1 或pagenum>pages会返回空数据 -->

       <property name= "reasonable" value= "true" />

       <!-- 3.5 . 0 版本可用 - 为了支持startpage(object params)方法 -->

       <!-- 增加了一个`params`参数来配置参数映射,用于从map或servletrequest中取值 -->

       <!-- 可以配置pagenum,pagesize,count,pagesizezero,reasonable,orderby,不配置映射的用默认值 -->

       <!-- 不理解该含义的前提下,不要随便复制该配置 -->

       <property name= "params" value= "pagenum=start;pagesize=limit;" />

       <!-- 支持通过mapper接口参数来传递分页参数 -->

       <property name= "supportmethodsarguments" value= "true" />

       <!-- always总是返回pageinfo类型,check检查返回类型是否为pageinfo,none返回page -->

       <property name= "returnpageinfo" value= "check" />

     </plugin>

   </plugins>

</configuration>

3、在配置spring配置文件中,配置mybatis的sqlsessionfactory时,需要把mybatis-config.xml添加到属性中

?

1

2

3

4

5

6

7

8

9

<!-- sqlsessionfactory -->

   <bean id= "sessionfactory" class = "org.mybatis.spring.sqlsessionfactorybean" >

     <!--设置数据源-->

     <property name= "datasource" ref= "datasource" ></property>

     <!--设置映射文件-->

     <property name= "mapperlocations" value= "classpath:mybatis/sqlmap/mapper/*.xml" ></property>

     <!--设置pagehelper-->

     <property name= "configlocation" value= "classpath:mybatis/mybatis-config.xml" ></property>

   </bean>

4、使用mybatis的mapper接口进行查询,在查询时,需要使用pagehelper.startpage方法

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

@test

   public void testselectall() {

     page<doctor> page = pagehelper.startpage( 1 , 3 );

     //selectall查询出的list即为上面定义的page

     doctormapper.selectall();

     //注意:

     //使用pagehelper.startpage只是针对接下来的一条查询语句,

     //如果又查询了一次数据,则还需要使用一次pagehelper.startpage

     logger.info( "获取所有doctor信息,获得记录数:{}" , page.size());

     logger.info( "获取所有doctor信息,获得记录:{}" , page);

     //使用pageinfo封装

     pageinfo<doctor> info = new pageinfo<doctor>(page);

     logger.info( "info.getpages:{}" ,info.getpages());

   }

5、page对象继承了arraylist,因此在使用了pagehelper.startpage之后,page即为查询到的数据,并且在page中还额外封装了pagenum,pagesize等属性,还可以使用pageinfo封装page,pageinfo中有更多的分页属性,例如isfirstpage是否为首页、islastpage是否为末尾、hasnextpage是否存在下一页等。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://www.cnblogs.com/cksvsaaa/p/6036068.html

查看更多关于Spring集成PageHelper的简单用法示例的详细内容...

  阅读:36次