文档章节

Mybatis Paginator分页

_
 _Roger_
发布于 2015/10/20 10:12
字数 528
阅读 108
收藏 0
点赞 0
评论 0

mybatis-paginator是gethub上的一个开源项目、用于java后台获取分页数据、该开源项目还提供一个列表组件(mmgrid)用于前端展示。

该开源项目地址:https://github.com/miemiedev

参考博客:http://blog.csdn.net/szwangdf/article/details/27859847

1、maven添加依赖

<dependencies>
  ...
    <dependency>
        <groupId>com.github.miemiedev</groupId>
        <artifactId>mybatis-paginator</artifactId>
        <version>1.2.10</version>
    </dependency>
  ...
</dependencies>


2、mybatis-config.xml配置插件

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPE configuration  PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"  "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
    <plugins>
        <plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
            <propertyname="dialectClass"value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>
        </plugin>
     </plugins>
</configuration>


3、spring mvc传递分页的数据

3.1、使用Json

需要配置spring-mvc.xml

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-argvalue="UTF-8"/>        
        </bean>
 
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
             <property name="objectMapper">
                 <bean class="com.github.miemiedev.mybatis.paginator.jackson2.PageListJsonMapper"/>
             </property>
             <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
         </bean>
     </mvc:message-converters>
 </mvc:annotation-driven>


controller传递方式

(利用@ResponseBody注解传递Json数据,需要添加相关jar包:jackson-core-asl.jar和jackson-mapper-asl.jar)

@ResponseBody
@RequestMapping(value ="/findByCity")
public List findByCity(@RequestParam String city,
                 @RequestParam(required =false,defaultValue ="1") intpage,
                 @RequestParam(required =false,defaultValue ="30") intlimit,
                 @RequestParam(required =false) String sort,
                 @RequestParam(required =false) String dir) {
 
    return userService.findByCity(city, newPageBounds(page, limit, Order.create(sort,dir)));
}


序列化后的Json字符串

{
    "items":[
        {"NAME":"xiaoma","AGE":30,"GENDER":1,"ID":3,"CITY":"BeiJing"},
        {"NAME":"xiaoli","AGE":30,"SCORE":85,"GENDER":1,"ID":1,"CITY":"BeiJing"},
        {"NAME":"xiaowang","AGE":30,"SCORE":92,"GENDER":0,"ID":2,"CITY":"BeiJing"},
        {"NAME":"xiaoshao","AGE":30,"SCORE":99,"GENDER":0,"ID":4,"CITY":"BeiJing"}
    ],

    "slider": [1, 2, 3, 4, 5, 6, 7],
    "hasPrePage":false,
    "startRow": 1,
    "offset": 0,
    "lastPage":false,
    "prePage": 1,
    "hasNextPage":true,
    "nextPage": 2,
    "endRow": 30,
    "totalCount": 40351,
    "firstPage":true,
    "totalPages": 1346,
    "limit": 30,
    "page": 1
}


3.2、在spring mvc的jsp中用JSTL取分页数据的值

spring-mvc.xml配置

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="com.github.miemiedev.mybatis.paginator.springmvc.PageListAttrHandlerInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>


controller方法传值方式

@RequestMapping(value ="/userView")
public ModelAndView userView(@RequestParam String city,
                 @RequestParam(required =false,defaultValue ="1")int page,
                 @RequestParam(required =false,defaultValue ="30")int limit,
                 @RequestParam(required =false) String sort,
                 @RequestParam(required =false) String dir) {
    List users = userService.findByCity(city,newPageBounds(page, limit, Order.create(sort,dir)));
    return newModelAndView("account/user","users", users);
}


jsp取值(拦截器会将PageList分拆添加Paginator属性,默认命名规则为"原属性名称"+"Paginator")

<table>
    <c:forEach items="${users}"var="user">
        <tr>
            <td>${user['ID']}</td>
            <td>${user['NAME']}</td>
            <td>${user['AGE']}</td>
        </tr>
    </c:forEach>
</table>

上一页: ${usersPaginator.prePage} 
当前页: ${usersPaginator.page} 
下一页: ${usersPaginator.nextPage} 
总页数: ${usersPaginator.totalPages} 
总条数: ${usersPaginator.totalCount} 


更多属性参考Paginator类提供的方法


© 著作权归作者所有

共有 人打赏支持
_
粉丝 29
博文 82
码字总数 39915
作品 0
武汉
Mybatis分页和Spring的集成

写了一个Mybatis分页控件,在这记录一下使用方式。 在Maven中加入依赖: <dependencies> ... <dependency> <groupId>com.github.miemiedev</groupId> <artifactId>mybatis-paginator</artif......

miemiedev
2013/06/04
0
108
关于Mybatis-Paginator的分页问题

@miemiedev 版本:spring 4.2.0.RELEASE,mybatis-3.3.0,mybatis-paginator-1.2.17 UserMapper.xml selectfrom user BaseDao public List getAll(PageBounds pageBounds......

ecp
2015/08/28
3.8K
3
Mybatis的分页插件--Mybatis-Paginator

用于Mybatis的分页插件,提供了服务器端的分页和排序功能。 基本的用法可以查看这里。

miemiedev
2013/06/17
13.5K
3
使用你的mybatis插件 时候碰上一个问题

@miemiedev 你好,想跟你请教个问题:这个分页插件用上后 我期望直接使用shopExample PageBounds pgb = new PageBounds(1,30); ShopExample example = new ShopExample(); example.setDistin......

如是传统
2013/11/08
21.6K
5
Django 基于类的视图源码分析 三

列表类通用视图(list.py) 此文件包含用于显示数据列表常用的类和工具类。不仅可以方便的用于显示基于模型(Model)的数据列表,也可以用于显示自定义数据列表。 ![list.py类图][1] 此图中绿色部...

XuYuan
2013/02/22
0
0
Django+boostrap分页(1)

源起 我想要优雅地使用+ 来实现分页,忽然发现不知道该如何做起我照葫芦画瓢知道了怎么使用列表组件,也大概知道怎么使用,但是放到一起我就彻底懵逼了。 资料收集 基本分页演示 如果想使用禁...

mhye
2016/10/09
80
0
django paginator基本使用方法

分页是Web应用常用的手法,Django提供了一个分页器类Paginator(django.core.paginator.Paginator),可以很容易的实现分页的功能。该类有两个构造参数,一个是数据的集合,另一个是每页放多少...

jacked
2015/11/13
0
0
Thinkphp5 自定义分页类

1.在extend目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中 [ 'type' => 'pagePage',//分页类 'var_page' => 'page', 'list_rows' => 15, ], 分页样式为: 注:1)...

噼里啪啦啦
06/19
0
0
laravel框架分页使用group后的问题

laravel框中的ORM模型确实很方便,尤其分页操作非常方便,但最近做报表时发现一个问题,当我们使用的SQL中添加了groupBy条件后再分页就会有一个问题。 不难看出,框架是取出所有的数据,然后...

技术小牛人
2017/11/06
0
0
支持bootstrap v3的分页js插件,就像bootstrap-paginator那样但是bootstrap-paginator不支持V3只支持V2

有没有支持bootstrap v3的分页js插件,就像bootstrap-paginator那样但是bootstrap-paginator不支持V3只支持V2

陈超旗
2014/11/06
444
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

高效编写Dockerfile的几条准则

概述 Dockerfile 是专门用来进行自动化构建镜像的编排文件(就像Jenkins 2.0时代的Jenkinsfile是对Jenkins的Job和Stage的编排一样),我们可以通过 docker build 命令来自动化地从 Dockerfi...

小致dad
43分钟前
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
7
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
196
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部