mybatis 分页插件 mybatis-plus-page

Apache
Java
跨平台
2017-11-29
杰睿宁

 

mybatis分页插件MicroPageInterceptor 特点:

1, 支持mysql和oracle分页

2, 不必在xml编写统计count的sql

3, 使用RowBounds子类PageInfo作为分页信息和记录总数的载体,不必像其他分页插件那样要求输入输出参数必须继承特殊父类。

4, 可在PageInfo中填写自定义排序sql串,提高查询性能和排序灵活性

 

jar已经提交maven中央库version使用最新的

 

spring 中配置 mybatis 分页插件 MicroPageInterceptor

建议在 sqlSessionFactory 中配置,可以根据 sqlSessionFactory 是 oracle 还是 mysql 配置插件的 dialect 属性

Dao接口设置

接口中添加PageInfo参数,表示需要分页处理

//分页查询,传入PageInfo参数
public List queryInfoByCondition(Map paramMap,PageInfo pageInfo);
//不分页,则不用传PageInfo参数
public List queryInfoByCondition(Map paramMap);

PageInfo结构

PageInfo继承RowBounds可以透传到Mybatis内部,不影响正常的参数。 pageNo,页数从1开始 pageRows,每页条数 orderStr,自定义排序sql(非必填) total,返回总记录数(返回值)

public class PageInfo extends RowBounds {
    public PageInfo(int pageNo,int pageRows) {
        super(pageNo, pageRows);
    }
    public PageInfo(int offset,int limit, String orderStr) {
        super(offset, limit);
        this.orderStr=orderStr;
    }
    private Longtotal = 0l;
    public Long getTotal() {
        returntotal;
    }
    public void setTotal(Long total) {
        this.total = total;
    }
    private StringorderStr = "";
    public String getOrderStr() {
        returnorderStr;
    }
    public void setOrderStr(String orderStr) {
        this.orderStr = orderStr;
    }
}

分页或不分页sql在xml中是一样的不需要修改;sql不需要针对pageinfo做额外处理,比如手工添加limit或rownum;不需要分页的则不传PageInfo参数;不需要额外填写count统计sql;

Java调用Dao

PageInfo创建实例时需填写pageNo(页数从1开始)和pageRows(每页条数) 如果xml中sql没有orderby语句可以,在pageInfo中设置pageInfo.setOrderStr()

//创建分页信息对象
PageInfo pageInfo=new PageInfo(1,10);//第1页,每页10条
//可以设置order串(非必须)
pageInfo.setOrderStr("id desc");
//调用dao并传入
pageInfoList list=testRep.queryInfoById(paramMap,pageInfo);
System.out.println(list);
//使用pageInfo.getTotal()获取总记录数
System.out.println(pageInfo.getTotal());

注意:

1,自定义排序

如果xml中sql没有写死排序sql,则pageInfo可以设置排序字符串。好处是查询记录个数时不必排序,查询记录时自动拼上排序sql,提高查询性能。也可以不修改xml中sql支持灵活排序。

2,总记录数处理

不必编写额外的查询count的sql;记录数会在插件中设置到pageInfo对象的total字段中带回。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

mybatis 分页插件 MicroPageInterceptor v1.0.2 发布

mybatis分页插件MicroPageInterceptor jar已经提交至maven中央库,version使用最新的。 源码地址: https://github.com/jeffreyning/mybatis-plus MicroPageInterceptor特点: 1, 支持mysql...

2017/12/01 09:33

没有更多内容

加载失败,请刷新页面

没有更多内容

1
回答
Mybatis PageHelper分页,在没有startPage的语句后面追加 LIMIT

pagehelper 分页有一个严重的问题,就是会监听到不用分页的语句,在sql尾后追加 LIMIT ? ,这样就造成了,select查询所有数据的时候只...

06/14 18:29

没有更多内容

加载失败,请刷新页面

没有更多内容

Ethel_Pagination-----mybatis的分页插件

Ethel是一款基于mybatis的分页插件,支持多种数据库,简单配置就可以使用。前后端可以完全分离,传递需要的参数到后台就可以,通过json与前端交互。

2016/12/02 17:00
75
0
mybatis-page

mybais-page 是自定义的一个mybatis分页插件,方便系统集成,用户只需要集成到自己的系统中就可以实现自动分页功能。目前只支持mysql和oracle,当然用户也可以自己扩展自己需要的数据库分页。...

2016/12/11 14:07
14
0
【深入浅出MyBatis系列七】分页插件

#0 系列目录# - 深入浅出MyBatis系列 - [【深入浅出MyBatis系列一】MyBatis入门](http://my.oschina.net/xianggao/blog/548873) - [【深入浅出MyBatis系列二】配置简介(MyBatis源码篇)](h...

2015/12/24 15:39
1K
2
mybatis开发记录

问:插入一条记录后如何返回主键id? id设为主键自增,加入<selectKey>标签,如下。 <insert id="insert" parameterType="entity.Order"> <selectKey keyProperty="id" resultType="long" or...

2017/04/10 15:24
38
0
mybatis代码自动生成Demo

代码有点多,就不都上传了。需要的可以留有。

2015/10/12 10:50
21
0
SpringBoot学习之路:05.Spring Boot集成pagehelper分页插件

前面说了Spring Boot集成持久层框架Mybatis的过程,和使用mybatis进行对数据库进行CRUD的操作,然而当对多数据进行查询时就需要进行分页了,分页技术分为客户端分页和服务器端分页(数据库分...

2017/03/23 13:52
504
1
Mybatis-Plus 真好用(乡村爱情加持)

写在前面 MyBatis的增强方案确实有不少,甚至有种感觉是现在如果只用 “裸MyBatis”,不来点增强插件都不好意思了。这不,在上一篇文章《Spring Boot项目利用MyBatis Generator进行数据层代码...

05/14 15:08
3
0
ibatis/mybatis 分页

以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了。最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧。记录下其使用方法。 1. 引入依赖jar...

2016/09/27 09:40
12
0
Mybatis 数据库物理分页插件 PageHelper

以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了。最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧。记录下其使用方法。 1. 引入依赖jar...

2018/11/14 16:48
73
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部