PageHelper的使用

来源:互联网 发布:java金额大写转换 编辑:程序博客网 时间:2024/06/06 06:20

一.添加依赖

   <dependency>      <groupId>com.github.pagehelper</groupId>      <artifactId>pagehelper</artifactId>      <version>5.0.4</version>    </dependency>

二.配置mybatis的配置文件

<?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>            <!--在mybatis中配置拦截器插件-->        <plugin interceptor="com.github.pagehelper.PageInterceptor">            <!--dialect  方言-->            <!--<property name="dialect" value="mysql"/>-->    如果加上这条会报错            <!--offsetAsPageNum:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为 true 时            ,会将 RowBounds 中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。-->            <property name="offsetAsPageNum" value="true"/>            <!--rowBoundsWithCount:默认值为false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为true时,            使用 RowBounds 分页会进行 count 查询。-->            <property name="rowBoundsWithCount" value="true"/>            <!--pageSizeZero:默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBound            s.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)。-->            <property name="pageSizeZero" value="true"/>            <!--reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, page            Num>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。-->            <property name="reasonable" value="true"/>            <!--为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageN            um,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。-->            <property name="params" value="pageNum=start;pageSize=limit;"/>                <!--支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适                的值时就会自动分页。 使用方法可以参考测试代码中的 -->            <property name="supportMethodsArguments" value="true"/>            <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->            <property name="returnPageInfo" value="check"/>        </plugin>    </plugins>    <!-- mapping 文件路径配置 -->    <mappers>        <mapper resource="UserMapper.xml" />        <mapper resource="FileMapper.xml" />        <mapper resource="AuthorMapper.xml"/>        <mapper resource="CommentMapper.xml"/>    </mappers></configuration>

三. 配置Spring-dao.xml
引入mybatis的配置文件

        <property name="configLocation" value="classpath:mybatis.xml"/>

四.测试类

package com.song.service.Impl;import com.github.pagehelper.PageHelper;import com.song.po.File;import com.song.service.FileService;import org.junit.Test;import org.junit.runner.RunWith;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;/** * 控制主体 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml","classpath:mybatis.xml"})public class FileServiceTest {    private final Logger logger = LoggerFactory.getLogger(this.getClass());    @Autowired    private FileService service;    @Test    public void listAll() throws Exception {        PageHelper.startPage(1,5);        List<File> list =  service.listAll();        for (File file:list){            System.out.println(file.getTitle());        }    }}
原创粉丝点击