侧边栏壁纸
  • 累计撰写 15 篇文章
  • 累计创建 2 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

【PageHelper分页】使用Mybatis分页插件PageHelper进行分页

十七画生
2022-04-18 / 0 评论 / 5 点赞 / 611 阅读 / 687 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-12-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

PageHelper

在网上找了一大圈,都不符合自己的业务
自己琢磨出来了

1. 导入Pom配置文件

我这里使用的5.0.0的版本

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

2. 配置Mybatis的配置文件

	    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--Mapper文件路径-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        <!--配置pagehelper-->
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <!--使用下面的方式配置参数,一行配置一个 -->
                        <value>
                            params=value1
                            supportMethodsArguments=true
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

3.分页类

分页类需要两个属性,一个是第几页,一个是每页显示多少条
这两个属性作为插件PageHelper类的形参

public class page {
    private int offset;
    private int limit;
}

4.调用插件分页类PageHelper

直接在Controller类中调用

	    //查询分页
    @RequestMapping(value = "/getUsersPage", method = RequestMethod.POST)
    public List<User> getUsersPageByEach(@RequestBody page page) {
        //设置当前页和每页数量
        PageHelper.startPage(page.getOffset(), page.getLimit());
        //获取所有用户的List集合
        List<User> userList = userService.getUserList(new User());
        //将用户集合放进分页对象中
        PageInfo<User> pageInfo = new PageInfo<>(userList);
        //返回分页对象
        return new ArrayList<>(pageInfo.getList());
    }

把分页类page作为形参传入控制层的请求方法,在进行ajax请求时,把传入的参数封装成page类传入方法
PageHelper类有两个属性,一个是pageParams,一个是autoDialect

//控制层的方法返回值为List集合,把page类作为形参传入分页方法

public List getUsersPageByEach(@RequestBody page page) {}

//把page类的属性赋值给PageHelper的两个属性

PageHelper.startPage(page.getOffset(), page.getLimit());

//查询所有获得一个list集合

List userList = userService.getUserList(new User());

//将集合放进pageInfo类中

PageInfo pageInfo = new PageInfo<>(userList);

//pageInfo类调用集合,放进List集合,作为方法返回值

return new ArrayList<>(pageInfo.getList());

5.ajax请求

    let param = {};
    //第几页,每页显示多少条
    param.offset = 1;
    param.limit = 3;
    let url = "http://localhost:8081/test_war_exploded/getUsersPage";
    let obj = ajaxUtils.ajaxPost1(url, param);

注意:我用的是封装方法,请求时要把请求数据param使用JSON.stringify()封装JSON.stringify(param)

6.返回的JSON实例

{
    "address": "中国北京",
    "email": "wu566448@163.com",
    "id": 8,
    "name": "admin",
    "page": 0,
    "pageSize": 0,
    "phone": "10086111008",
    "pwd": "123123"
}
**多了两个属性,返回值暂时不知道怎么设置**

5

评论区