mybatis分页插件的应用

本文详细介绍了如何配置MyBatis的PageHelper插件,包括XML、Java类和YML三种方式,并提供了配置参数的解释。PageHelper插件用于实现高效的分页查询,必须在查询SQL前调用PageHelper.startPage()方法。配置内容包括数据库别名、分页参数设置等,确保在不同场景下正确分页。
摘要由CSDN通过智能技术生成

注!!! PageHelper.startPage () 必须加在执行查询sql语句方法之前 因为需要拼接limit 不然分页不了

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>

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <!--    起别名 -->
    <typeAliases>
        <package name="com.wei.pojo"/>
    </typeAliases>

<!--    分页插件 -->
    <plugins>
        <!-- com.github.pagehelper为PageHelper类所在包名
            注意:pagehelper的版本是5.0之后的版本使用com.github.pagehelper.PageInterceptor这个类。
         -->
        <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"/>
        </plugin>
    </plugins>



</configuration>

java类配置 (方式二)

package com.sky.exam1.config;

import com.github.pagehelper.PageHelper;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

//定义分页拦截器
@Configuration
public class MyConfig {

    @Bean
    PageHelper pageHelper(){
        //分页插件
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("returnPageInfo", "check");
        properties.setProperty("params", "count=countSql");
        pageHelper.setProperties(properties);

        //添加插件
        new SqlSessionFactoryBean().setPlugins(pageHelper);
        return pageHelper;
    }
}

yml文件配置(方式三)

pagehelper:
    helperDialect: mysql
    reasonable: false  #开启优化,如果开启优化,在分页页码结果没有数据的时候,会显示有数据的页码数据
    supportMethodsArguments: true #是否支持接口参数来传递分页参数,默认false
    pageSizeZero: false #pageSize=0 返回所有
    params: count=countSql

依赖包

<!--     分页插件    -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>0.9.1</version>
        </dependency>

然后就可以直接使用mybatis分页的方法和对象了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值