当前位置: 首页 > news >正文

如何使用Mybatis第三方插件--PageHelper实现分页操作

1.概述

最近在做宜立方商城项目时,后台管理系统要求实现分页显示,由于项目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelper来实现分页这一功能,下面就如何在项目使用这一插件进行说明。


2.使用方法

  1. 添加依赖
    把PageHelper依赖的jar包添加到工程中。官方提供的代码对逆向工程支持的不好,使用参考资料中的pagehelper-fix。首先将下列链接中的pagehelper-fix的maven工程导入myeclipse中,点击run 选择maven install,这步操作便可以把pagehelper-fix安装到本地仓库,从而可以将其当做一个jar包来使用。

pagehelper-fix下载链接:链接:https://pan.baidu.com/s/1kXb1OF1 密码:tgk5

2.修改mybatis配置文件

在Mybatis配置xml中配置拦截器插件:
   <plugins>
         <!-- com.github.pagehelper为PageHelper类所在包名 -->
         <plugin interceptor="com.github.pagehelper.PageHelper">
             <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->        
              <property name="dialect" value="mysql"/>
         </plugin>
    </plugins>
    
    

3. 如何在项目中使用PageHelper

import java.util.List;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;   
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; 
import cn.e3mall.mapper.TbItemMapper;
import cn.e3mall.pojo.TbItem;
import cn.e3mall.pojo.TbItemExample;  
/**
 * @author 熊涛
 *分页测试用例
 */
public class PageHelperTest {

    @Test
    public void testPageHelper() throws Exception
    {
        //初始化spring容器
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
        //获得Mapper的代理对象
        TbItemMapper itemMapper = applicationContext.getBean(TbItemMapper.class);
        //执行sql语句前设置分页信息使用PageHelper的startPage方法
        PageHelper.startPage(1,30);
        //执行查询
        TbItemExample example = new TbItemExample();
        List<TbItem> list = itemMapper.selectByExample(example);
        //取分页信息,PageInfo:1.总记录数   2.总页数  3.当前页码
        PageInfo<TbItem> pageInfo = new PageInfo<>(list);
        System.out.println(pageInfo.getTotal());
        System.out.println(pageInfo.getPages());
        System.out.println(pageInfo.getPageNum());
        System.out.println(pageInfo.getPageSize());

    }
}

4. 在服务层使用PageHelper

@Override
    public EasyUIDataGridResult getItemList(int page, int rows) {
        //设置分页信息
                PageHelper.startPage(page, rows);
                //执行查询
                TbItemExample example = new TbItemExample();
                List<TbItem> list = itemMapper.selectByExample(example);
                //取分页信息
                PageInfo<TbItem> pageInfo = new PageInfo<>(list);
                //创建返回结果对象
                EasyUIDataGridResult result = new EasyUIDataGridResult();
                result.setTotal(pageInfo.getTotal());
                result.setRows(list);
                
                return result;
    }
    
    

5. 在控制层使用service

@RequestMapping("/item/list")
@ResponseBody
public EasyUIDataGridResult getItemList(Integer page, Integer rows) {

EasyUIDataGridResult result = itemService.getItemList(page, rows);
return result;

}

相关文章:

  • SQLserver 数据库的索引,存储过程和触发器的使用与概念
  • 2018 年,去百度面试Java后端的一次面试经历
  • Python 随机数 random
  • Nginx源码包需要的翻译软件有哪些
  • CentOS Linux搭建SVN服务器
  • 提醒我喝水chrome插件开发指南
  • 进度二
  • mysql数据库主从复制
  • Python_OOP
  • 获取ip地址
  • ajax引用检测用户名是否存在
  • IDEA快捷键笔记
  • JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】
  • 用Metaclass实现一个精简的ORM框架
  • 看不到短期回报,首席财务官们表示对AI并不感冒
  • SegmentFault for Android 3.0 发布
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 0基础学习移动端适配
  • 2017-09-12 前端日报
  • android图片蒙层
  • GitUp, 你不可错过的秀外慧中的git工具
  • HTTP请求重发
  • Javascript编码规范
  • Logstash 参考指南(目录)
  • mysql 5.6 原生Online DDL解析
  • mysql innodb 索引使用指南
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 基于组件的设计工作流与界面抽象
  • 排序算法之--选择排序
  • 三栏布局总结
  • 实战|智能家居行业移动应用性能分析
  • 推荐一个React的管理后台框架
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一道闭包题引发的思考
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 最近的计划
  • 数据库巡检项
  • #Spring-boot高级
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (done) 两个矩阵 “相似” 是什么意思?
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (九)c52学习之旅-定时器
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)关于多人操作数据的处理策略
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .dwp和.webpart的区别
  • .gitattributes 文件
  • .net 4.0发布后不能正常显示图片问题
  • .net6Api后台+uniapp导出Excel
  • .net知识和学习方法系列(二十一)CLR-枚举
  • //解决validator验证插件多个name相同只验证第一的问题