MyBatis分页插件-PageHelper的配置与应用(二):即插即用的PageInfo<T>

这篇博客介绍了如何配置和使用MyBatis的PageHelper分页插件,包括在pom.xml中引入依赖,配置Spring-Mybatis的拦截器,以及在Mapper接口和XML文件中实现分页查询。PageHelper插件能够自动处理分页参数,简化开发过程。同时,文中提到了PageInfo类的使用,它可以方便地获取和展示分页结果。
摘要由CSDN通过智能技术生成

在我看来,这个分页插件为mybatis量身定制。完美融合框架,一句多余的代码也不需要我们写.我们

MyBatis分页插件-PageHelper的配置与应用

一.引入PageHelper依赖

pom.xml 引入依赖:

<!-- pagehelper :分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version>
</dependency>
<!-- pagehelper的依赖包:jsqlparser -->
<dependency>
    <groupId>com.github.jsqlparser</groupId>
    <artifactId>jsqlparser</artifactId>
    <version>0.9.5</version>
</dependency>

*如果不用maven需要自行下载两个jar包:

  1. http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/
  2. http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.5/

二.配置拦截器插件

spring-mybatis.xml 集成配置:

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- 自动扫描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath:site/gaoyisheng/mapping/*.xml"></property>

    <!-- 分页插件 pagehelper -->
    <property name="plugins">
        <array>
            <bean class="com.github.pagehelper.PageInterceptor">
                <property name="properties">
                    <!--使用下面的方式配置参数,一行配置一个 -->
                    <value>
                          helperDialect=postgresql
                          reasonable=true
                          supportMethodsArguments=true
                          params=count=countSql
                          autoRuntimeDialect=true
                    </value>
                </property>
            </bean>
        </array>
    </property>
</bean>

简单介绍其中参数,具体参数详见: 分页插件参数介绍

  • helperDialect:如果不配置,pagehelper会自动获取连接,检测数据库。也可以自己声明数据库的方言,比如此处用的postgresql。

  • reasonable:配置pageNum参数合理化,比如第0页,和超过最后一页,则返会第一页和最后一页。而不是意想不到的数据。

  • supportMethodsArguments:”支持通过 Mapper 接口参数来传递分页参数”,通过interface传给mapper.xml,默认false不支持.代码实例可见 例子:查询测试代码 , mapper.xml代码,查看详细的写法.展示了两种不同传值方法,

  • params=count=countSql 为了支持PageHelper.startPage(Object params)方法,默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero .

  • autoRuntimeDialect:运行时多数据源(数据库)自动识别,默认值false。true则允许自动识别对应方言的分页.

至此,我们已经配好一个简单可用的分页插件了.

三.使用分页插件

这里介绍其中一种方法,简单易懂.

1.mapper接口 简单易懂

最简单的使用方法是,通过mapper接口,传递分页参数:

    /**
     * .
     * TODO  查看所有未认领的awards
     * @param request
     * @return
     */
    @RequestMapping(value = "/notClaimed-list", method = RequestMethod.POST)
    @ResponseBody
    public Object notClaimedList(HttpServletRequest request) {

        int pageNum = Integer.valueOf(request.getParameter("pageNum"));
        int pageSize = Integer.valueOf(request.getParameter("pageSize"));

        //注意,查询语句要紧跟下面这一条.  
        PageHelper.startPage(pageNum,pageSize);
        List<ChPeriodicalThesis> ls = chPeriodicalThesisService.selectByStatus("未认领");

        //返回PageInfo的JSON
        return new PageInfo<ChPeriodicalThesis>(ls);

    }

pageNum: 控制页数.
pageSize: 控制页面大小.

2.mapper.xml 框架已做好处理

在mapper.xml中,并不需要我们处理任何参数.{“pageNum”,”pageSize”} Mybatis框架会自动查找对应分页的数据然后返回.

<!-- 根据 认领状态 查询 -->
<select id="selectByStatus" resultMap="BaseResultMap">
    select
        <include refid="Base_Column_List" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值