SSM+easyUI结合Mybatis-PageHelper实现分页功能
2017-02-21 13:33
736 查看
一:简介
Mybatis-PageHelper是一个大神在github上得开源项目,作者博客:http://my.csdn.net/isea533。说明及使用文档 https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md二:整合ssm以及代码使用
很详细的说明以及用法,参数的配置,每个方法的详细介绍都在文档里面。https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md三:案例:
1:pom依赖
<!-- 分页插件 --><dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
2:在 Spring 配置文件中配置拦截器插件
bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath*:config/mapper/*"></property> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <!--使用下面的方式配置参数,一行配置一个 --> <value> helperDialect=oracle reasonable=true supportMethodsArguments=true params=count=countSql autoRuntimeDialect=true </value> </property> </bean> </array> </property> </bean>
3.代码使用
前台js$(function(){ changeByPager(1,5); var pager = $("#dgzd").datagrid("getPager"); if(pager) { $(pager).pagination({ onBeforeRefresh:function(){ alert('刷新前。。。。'); }, onRefresh:function(pageNumber,pageSize){ }, onChangePageSize:function(pageNumber,pageSize){ /* alert(pageSize); changeByPager(1,pageSize) ; */ }, onSelectPage:function(pageNumber,pageSize){ changeByPager(pageNumber,pageSize); } }); } }) /** * ajax 向后台传递参数,根据不同分页的格式刷新数据格 */ function changeByPager(pageNumber,pageSize){ console.log(pageNumber); console.log(pageSize); $.ajax({ type : "POST", url : "order/changeByPager", data :{ "data":JSON.stringify({ "pageNumber":pageNumber , "pageSize":pageSize }) }, success : function(data) { $("#dgzd").datagrid("loadData",data); } }); }
后台代码:
@RequestMapping(value="/changeByPager",method = RequestMethod.POST,produces=MediaType.APPLICATION_JSON_VALUE) @ResponseBody public JSONObject changeByPager(String data) throws JsonParseException, JsonMappingException, IOException{ Pages pages= mapper.readValue(data, new TypeReference<Pages>() { }); int page = Integer.parseInt(pages.getPageNumber()) ; int rows =Integer.parseInt(pages.getPageSize()) ; Map<String, Object> map = new HashMap<String, Object>(); List<Order> listAll = orderService.getAllforAdmin( ) ; map.put("total", listAll.size());//total键 存放总记录数,必须的 PageHelper.startPage(page,rows); List<Order> listPage = orderService.getAllforAdmin( ) ; map.put("rows", listPage);//rows键 存放每页记录 list return JSONObject.fromObject(map); }
Pages类(主要是为了接收前台传来的两个参数):
public class Pages { private String pageNumber ; private String pageSize ; public String getPageNumber() { return pageNumber; } public void setPageNumber(String pageNumber) { this.pageNumber = pageNumber; } public String getPageSize() { return pageSize; } public void setPageSize(String pageSize) { this.pageSize = pageSize; } }
4.问题解析
(1)前台传来的参数第一个是每页显示数据的数量(rows)。第二个是当前页码(page);
从后台的controller中获取这两个参数,再无论是通过pageHelper插件还是自己写分页的sql都特别的简单了。
pageHelper其实本质上就是个过滤器,对紧跟着的查询语句会对进行页码处理后的查询。
相关文章推荐
- 在 SSM 中基于 MyBatis-PageHelper 分页插件的分页功能实现
- maven+spring+mybatis实现分页功能PageHelper(参数方式)
- Mybatis学习(4):Mybatis及PageHelper插件和easyUI实现分页
- mybatis(pagehelper) dataTables实现分页功能
- easyui 分页 + mybatis 分页插件 PageHelper 完成分页显示功能(SpringMVC + mybatis 框架)
- SSM框架集成PageHelper插件,实现分页功能
- SSM框架中集成TKMybatis+PageHelper实现高效查询和分页
- PageHelper插件实现服务器端分页功能
- MyBatis中如何使用PageHelper插件实现 分页
- MyBatis+PageHelper实现分页
- Mybatis分页插件PageHelper实现自动分页
- 基于ssm框架的mybatis pagehelper分页插件的使用
- mybatis使用PageHelper实现分页的技术
- Spring+SpringMVC+Mybatis+PageHelper+laypage+Ajax实现的分页
- mybatis实现分页插件PageHelper
- JavaWeb从新手到入门(四)Spring Mybatis使用pageHelper实现物理分页
- SSM(Spring,springmvc,mybatis)+maven+AJAX实现分页功能
- mybatis pagehelper实现分页
- SpringBoot+Mybatis+PageHelper简化分页实现
- 【JAVA秒会技术之玩转高效分页】EasyUI + PageHelper实现分页