之前需要做分页,然后就发现手写挺麻烦的,于是上github找到了这个国人开发的插件,使用起来感觉不错,已经满足了我的要求!

需要和ssm框架一起整合,最重要的是要有spring和mybatis。

之后我使用jersey2 + spring + mybatis + page-helper也整合成功了,感觉不错!

一、实现流程

(1)使用之前

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

这是官方链接,使用之前可以好好看看说明。

(2)在pom.xml中引入这个插件的包

(3)写一个pagehelper_config.xml配置文件

这个配置似乎是通用的,从github上搞到的,基本不用改动。

(4)写spring-mybatis.xml配置文件

mybatis配置文件和以前是一样的,只是多了一句配置:

作用是在执行sql时使用分页配置来进行分页。

和其他的包不一样,不需要通过spring来进行引入,只需要在myabtis文件中加一行配置就可以了。

(5)写个简单的分页查询

我们做一个查询user列表并且进行分页的功能;

配置userMapper.xml:

写相应的mapper:

一直到这一步为止,都是普普通通的查询过程!

比较需要注意的是因为这里的分页有查询的功能,所以要加上select的逻辑,估计是需要一些mybatis基础的:

我觉得这里的模糊查询多个字段很容易导致数据库性能的下降,需要避免这种状况,但是暂时没找到更好的方法。

(6)下面是重点

写一个pagePojo的分页信息实体,来指导后端进行分页:

写一个接口及其实现类:

注意要包装成Map<String, Object>的形式来承载分页信息,然后通过spring mvc或者各个框架自动生成json格式的数据。

实现一个controller:

(7)通过调整pagePojo,就可以进行分页了!

具体分页数据如上,比较难理解的是页偏移,其实就是第多少页的意思。

其实这样写会有一个bug隐患,就是没有控制接口的输入。

我们都知道order排序基本上都是desc之类的固定mysql保留字,而ordername是进行排序的字段名,因为sql是ORDER BY ${ordername} ${order}这样进行拼装的,所以一旦输入错误信息,就会导致sql执行错误,后端报错。

为了解决这个问题,需要加上try catch,变成这样:

这样只要输入错误信息就会返回一个null,如果要换成其他报错信息也可以,就是前段要去处理一下了。

其实这里最好不要捕获所有错误,而只是捕获sql执行时的报错。防止全部错误都不提示而导致我们无法发现其他的错误。

因为没有研究,所以不方便乱说…

二、总结

page-helper功能强大,使用方便,最好结合前段分页插件使用,比如bootstrap的bootstrap-table插件。

下次进行前后端分页的实现.

2 对 “spring mvc 整合page-helper”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注