mybatis插件pageHelper实现分页效果

 更新时间:2018年12月29日 15:15:22   作者:肖红  
这篇文章主要为大家详细介绍了mybatis插件pageHelper实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近做的一个项目在持久层我们采用的是Mybatis今天完成了商品列表的分页查询的功能,这篇博客我分享一下如何采用pageHelper的插件实现分页。mybatis的应用,最大的好处就在于我们可以更加方便灵活的编写我们的sql语句,实现对单表或者多表的增删改查,在这基础上我们使用pageHelper插件实现分页更加方便了我们对项目的开发,提高了开发效率,我们以实现商品列表的查询为背景,详细介绍一下如何应用这个插件简单的实现分页功能。

1、jar包引入

我们项目中在依赖管理方面采用的是Maven,所以想要引入分页的jar包,我们需要配置三坐标:

<dependency>
 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper</artifactId>
 <version>${pagehelper.version}</version>
</dependency>

2、配置mybatis的拦截器:

<configuration>
  <!-- 配置分页插件 -->
 <plugins>
 <plugin interceptor="com.github.pagehelper.PageHelper">
  <!-- 设置数据库类型 -->
  <property name="dialect" value="mysql"/>
 </plugin>
 </plugins>
</configuration>

3、编写service层

页面采用的是easyUI的框架,页面接收数据采用的是json格式,所以在数据传输过程中,我们把最终的结果封装在一个实体里面,就需要在增加一个分页实体类:EUDataGridResult

package com.taotao.common.pojo;
 
import java.util.List;
 
public class EUDataGridResult {
   //结果总数
 private long total;
   //结果行数
 private List<?> rows;
 public long getTotal() {
 return total;
 }
 public void setTotal(long total) {
 this.total = total;
 }
 public List<?> getRows() {
 return rows;
 }
 public void setRows(List<?> rows) {
 this.rows = rows;
 }
 
}

编写业务层代码,增加分页处理,设置返回对象:

/**
 * 分页查询商品列表信息
 */
 @Override
 public EUDataGridResult getItemByList(int page, int rows) {
 //查询商品列表
 TbItemExample example=new TbItemExample();
 //分页处理
 PageHelper.startPage(page, rows);
 List<TbItem> list=itemMapper.selectByExample(example);
 //创建一个返回值对象
 EUDataGridResult result=new EUDataGridResult();
 //设置返回结果
 result.setRows(list);
 //设置返回的总记录数
 PageInfo<TbItem> pageInfo=new PageInfo<>(list);
 result.setTotal(pageInfo.getTotal());
 return result;
 }

4、编写前端控制层controller代码:

Controller中主要功能是接收页面传过来的参数,并且返回json类型的数据结果:

/**
 * 分页查询商品信息列表
 * @param page
 * @param rows
 * @return
 */
 @RequestMapping("/item/list")
 @ResponseBody
 public EUDataGridResult getItemList(Integer page,Integer rows){
 EUDataGridResult result=itemService.getItemByList(page, rows);
 return result;
 }

5、jsp的页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<table class="easyui-datagrid" id="itemList" title="商品列表" 
    data-options="singleSelect:false,collapsible:true,pagination:true,url:'/item/list',method:'get',pageSize:30,toolbar:toolbar">
  <thead>
    <tr>
     <th data-options="field:'ck',checkbox:true"></th>
     <th data-options="field:'id',width:60">商品ID</th>
      <th data-options="field:'title',width:200">商品标题</th>
      <th data-options="field:'cid',width:100">叶子类目</th>
      <th data-options="field:'sellPoint',width:100">卖点</th>
      <th data-options="field:'price',width:70,align:'right',formatter:TAOTAO.formatPrice">价格</th>
      <th data-options="field:'num',width:70,align:'right'">库存数量</th>
      <th data-options="field:'barcode',width:100">条形码</th>
      <th data-options="field:'status',width:60,align:'center',formatter:TAOTAO.formatItemStatus">状态</th>
      <th data-options="field:'created',width:130,align:'center',formatter:TAOTAO.formatDateTime">创建日期</th>
      <th data-options="field:'updated',width:130,align:'center',formatter:TAOTAO.formatDateTime">更新日期</th>
    </tr>
  </thead>
</table>

6、最后的实现结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java之SpringBean生命周期问题理解

    Java之SpringBean生命周期问题理解

    这篇文章主要介绍了Java之SpringBean生命周期问题理解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 浅谈SpringCloud之Ribbon详解

    浅谈SpringCloud之Ribbon详解

    这篇文章主要介绍了浅谈SpringCloud之Ribbon,文中有非常详细的代码示例,对正在学习SpringCloud的小伙伴们有很大的帮助,需要的朋友可以参考下
    2021-05-05
  • 如何解决freemarker静态化生成html页面乱码的问题

    如何解决freemarker静态化生成html页面乱码的问题

    这篇文章主要介绍了如何解决freemarker静态化生成html页面乱码的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 使用logback屏蔽一些包的日志

    使用logback屏蔽一些包的日志

    这篇文章主要介绍了使用logback屏蔽一些包的日志,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • java实现用户自动登录

    java实现用户自动登录

    这篇文章主要为大家详细介绍了java用户自动登录的实现方法,分为六个步骤实现用户自动登录,并验证用户是否已经登录,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Java实现打印二叉树所有路径的方法

    Java实现打印二叉树所有路径的方法

    这篇文章主要介绍了Java实现打印二叉树所有路径的方法,涉及java二叉树遍历与运算相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • Java中ShardingSphere分库分表实战

    Java中ShardingSphere分库分表实战

    我们做项目的时候,数据量比较大,单表千万级别的,需要分库分表,本文主要介绍了Java中ShardingSphere分库分表实战,感兴趣的可以了解一下
    2021-09-09
  • SpringCloud OpenFeign自定义结果解码器方式

    SpringCloud OpenFeign自定义结果解码器方式

    这篇文章主要介绍了SpringCloud OpenFeign自定义结果解码器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java 关系运算符详情及案例(下)

    Java 关系运算符详情及案例(下)

    这篇文章主要介绍了Java 关系运算符详情及案例的实现,主要续上篇文章,上一篇文章我们讲到“等于”运算符 (==)、“不等于”运算符(!=)、“大于”运算符(>) ,这篇文章继续给大家讲解相关知识,需要的朋友可以参考一下
    2021-12-12
  • SpringBoot 请求参数忽略大小写的实例

    SpringBoot 请求参数忽略大小写的实例

    这篇文章主要介绍了SpringBoot 请求参数忽略大小写的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论