天天看點

配置pageHelper實作分頁查詢

配置pageHelper實作分頁查詢

1.引入對應的依賴

<!--分頁工具包-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
</dependency>
           

然後需要配置一個mybatis攔截器,在mybatis.xml中加入如下插件代碼

<plugins>
    <!-- com.github.pagehelper為PageInterceptor類所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <property name="reasonable" value="true"/>
    </plugin>
</plugins>
           

或者也可以不配置在mybatis.xml中,也可以配置在spring-mybatis.xml的SqlSessionFactoryBean中,代碼如下:

<!-- SqlSessionFactoryBean -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="configLocation" value="classpath:mybatis/mybatis.xml" />
    <property name="typeAliasesPackage" value="com.pinyougou.model" />
    <property name="mapperLocations">
        <list>
            <value>classpath:com/pinyougou/mapper/*Mapper.xml</value>
        </list>
    </property>
    <property name="dataSource" ref="dataSource" />

    <!--分頁插件配置-->
    <property name="plugins">
        <array>
            <bean class="com.github.pagehelper.PageInterceptor">
                <!--配置分頁屬性-->
                <property name="properties">
                    <props>
                        <!--指定資料庫方言-->
                        <prop key="helperDialect">mysql</prop>
                        <!--合理化分頁操作-->
                        <prop key="reasonable">true</prop>
                    </props>
                </property>
            </bean>
        </array>
    </property>
</bean>

           

3 分頁插件的使用

分頁插件的使用很簡單,配置好了後,直接調用PageHelper的靜态方法startPage即可實作分頁,其他查詢正常寫就行了,注意一點,調用startPage的方法必須寫在執行查詢selectAll()前面,否則分頁無效。

/**
 * 分頁測試
 */
@Test
public void testPage(){
    //page 目前頁    size 每頁顯示多少條
    int page = 1,size=10;
    //分頁處理,隻需要調用PageHelper.startPage靜态方法即可。S
    PageHelper.startPage(page,size);

    //查詢
    List<Brand> brands = brandMapper.selectAll();

    //擷取分頁資訊,注意這裡傳入了brands集合對象
    PageInfo<Brand> pageInfo = new PageInfo<Brand>(brands);
    System.out.println(pageInfo);
}