Intellij IDEA 2018.2 使用Mybatis分页插件PageHelper使用

博客介绍了分页功能实现,先手动写分页代码,再对比使用PageHelper插件实现分页,利于理解底层。详细说明了PageHelper插件分页步骤,包括在mybatis.xml配置、在servlet用startPage方法、拦截器拼接分页语句、用PageInfo存放属性信息,还给出下载链接和测试效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   一般使用插件实现分页功能,但是在使用插件之前我们首先手动写出分页代码,对比插件实现的分页,利于我们理解分页底层实现和更好的实现插件分页实用技术,本次使用的插件是PageHelper(采用都是物理分页)

下载: https://github.com/pagehelper/Mybatis-PageHelper

下载这两个包 !

pegeHelper插件分页只是几个部分

第一:需要的mybatis.xml的配置文件中配置插件;并将下载的包添加的工程中哦!

 <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

第二:在servlect中使用PageHelper的startPage方法

Page<Object> page=PageHelper.startPage(第几页, 每页显示的个数);

第三:PageHelper拦截器会拦截查询方法,并且在查询的sql中根据不同的数据库拼接分页语句实现分页

第四:将PageInfo这个类存放分页的各种属性信息,核心代码就这三行,num的值由页面传递过来

         //获得分页对象
         Page<Object> page=PageHelper.startPage(Integer.valueOf(num), 10);
         //获得所有数据
         List<Userinfo> list=userservice.selectPageInfo();
         //获得PageInfo对象
         PageInfo<Userinfo> pageInfo =page.toPageInfo();

UserinfoMapper.xml文件

  <select id="selectPageInfo" resultType="Userinfo">
    select * from userinfo
     <!-- 可以根据条件查询--->
    <trim prefix="where" prefixOverrides="and|or">
      <if test="userCode!=null">
        userCode like concat('%',#{userCode},'%')
      </if>
      <if test="gender!=0">
        and  gender=#{gender}
      </if>
      <if test="userPassword!=null">
        or  userPassword=#{userPassword}
      </if>
    </trim>

  </select>

测试:

 @Test
    public void all2() {
        //
        SqlSession session = null;

        try {

            //连接会话
            session = MybatisUtil.getSession();
//
            System.out.println(session);
//
            //获得接口
            UserinfoMapper mapper = session.getMapper(UserinfoMapper.class);

          Page page= PageHelper.startPage(1, 6);


//        Userinfo u =new Userinfo();

            //调用方法
            List<Userinfo> list = mapper.selectByExample(null);

            //  System.out.println(list.size());
            for (Userinfo cls : list) {
                System.out.println(cls);
            }

          //封装PageInfo对象
//            PageInfo<Userinfo> pageInfo = new PageInfo<>(list);
            PageInfo<Userinfo> pageInfo =page.toPageInfo();

            System.out.println("总页数:"+pageInfo.getPages() + "==>总个数:" + pageInfo.getTotal());
            System.out.println("当前页:"+pageInfo.getPageNum() + "==>每页显示的个数:" + pageInfo.getPageSize());
            System.out.println("前一页:"+pageInfo.getPrePage() + "==>下一页:" + pageInfo.getNextPage());
            System.out.println("第一页:"+pageInfo.getNavigateFirstPage() + "==>最后一页:" + pageInfo.getNavigateLastPage());
            System.out.println("当前页的列表"+pageInfo.getList().size());

        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            //关闭
            MybatisUtil.closeSession(session);
        }


    }
}

效果: 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值