SpringBoot 整合 PageHelper 分页查询(加前端代码)

1.今天写项目需要用到PageHelper 分页插件去分页,如果已经SpringBoot搭好Mybatis 的话直接跳过第二步。

2.如果SpringBoot没有整合Mybatis 可以参考 Eclipse + SpringBoot + Mybaits 项目整合

3.在pom.xml 引入pageHelper 依赖。

     <!-- pageHelper -->
     <dependency>
          <groupId>com.github.pagehelper</groupId>
          <artifactId>pagehelper-spring-boot-starter</artifactId>
          <version>1.2.10</version>
      </dependency>

4 . 直接上js 代码。

<script>
		 $(function(){
	        var html = "";
	        html+='<div class="pages"  style="font-size:15px; text-align:center ;">';
	        html+='<div class="col-md-5" style="float:left ;text-align:left">当前第 ${pageInfo.pageNum} 页,共 ${pageInfo.pages}页,共 ${pageInfo.total} 条记录&emsp;&emsp;';
	     	html+='<select id="pageSize"  style="width:45px"  language=javascript οnchange="javascript:window.location.href=this.options[this.selectedIndex].value">';
	     	for(var i=10;i<=30;i+=5){
	     		if(${pageInfo.pageSize}==i){
	     			html+='<option selected="selected"  value="${pageContext.request.contextPath}/sysMenu/listMenu?page=${pageInfo.pageNum}&size='+i+'">'+i+'</option>';
	     		}else{ 
	     			html+='<option value="${pageContext.request.contextPath}/sysMenu/listMenu?page=${pageInfo.pageNum}&size='+i+'">'+i+'</option>';
	     		}
	     	}
	     	html+='</select></div>';
	     	
	    	html+='<div class="pagenation" class="col-md-6" >';
	        var first ='<a href="${pageContext.request.contextPath}/sysMenu/listMenu?page=1&size=${pageInfo.pageSize}" aria-label="Previous">首页</a>&emsp;';
	        var before ='<a href="${pageContext.request.contextPath}/sysMenu/listMenu?page=${pageInfo.pageNum-1}&size=${pageInfo.pageSize}" >上一页</a>&emsp;';
	        html+= first;
	        html += before;
	        var begin;
	        var end;
	        if (${pageInfo.pages < 6}){
	            begin=1;
	            end=${pageInfo.pages};
	        }else{
	            begin = ${pageInfo.pageNum-3};
	            end = ${pageInfo.pageNum+2};
	            if (begin< 1){
	                begin= 1;
	                end = begin + 5;
	            }
	            if (end > ${pageInfo.pages}){
	                end = ${pageInfo.pages};
	                begin = end -5;
	            }
	        }
	        var max = ${pageInfo.pages};
	        var str ='';
	        for (var i = begin ; i <= end ; i++) {
	                str += '<a href="${pageContext.request.contextPath}/sysMenu/listMenu?page='+i+'&size=${pageInfo.pageSize}" >'+i+'</a>&emsp;';
	                
	        }
	        html+=str;
	        
	        if (${pageInfo.pageNum >= pageInfo.pages}){
	            var lastPage ='<a href="${pageContext.request.contextPath}/sysMenu/listMenu?page='+max+'&size=${pageInfo.pageSize}" >下一页</a>&emsp;';
	        }else {
	            var lastPage ='<a href="${pageContext.request.contextPath}/sysMenu/listMenu?page=${pageInfo.pageNum+1}&size=${pageInfo.pageSize}" >下一页</a>&emsp;';
	        }
	        var nextPage ='<a href="${pageContext.request.contextPath}/sysMenu/listMenu?page=${pageInfo.pages}&size=${pageInfo.pageSize}" aria-label="Next" >尾页</a>';
	        html+=lastPage;
	        html+=nextPage;
	        html+='</div>';
	         $("#pages").html(html); 
	    })
	</script>

5 .我们通过 "${pageContext.request.contextPath}/sysMenu/listMenu?page=${pageInfo.pageNum+1}&size=${pageInfo.pageSize}" 发送请求到服务器。
6. 接着在Controller 层

@Controller
@RequestMapping("/sysMenu")
public class SysMenuController {
	@Autowired
	private SysMenuService sysMenuService;
	
	//查询操作
	@RequestMapping("/listMenu")
	public ModelAndView listMenu(@RequestParam(required = true,name = "page",defaultValue = "1")Integer page,
			@RequestParam(name = "size",defaultValue = "10") Integer size) {
		ModelAndView model = new ModelAndView();
		List<SysMenu> sysMenus = sysMenuService.findSysMenus(page,size);
		
		PageInfo pageInfo = new PageInfo(sysMenus);
		pageInfo.setPageSize(size);
		model.addObject("pageInfo", pageInfo);
		model.setViewName("/sys/menu");
		return model;
	}
}

7 在Service 层

@Service
@Transactional
public class SysMenuService {
	@Autowired
	private SysMenuMapper SysMenuMapper;
	
	public List<SysMenu> findSysMenus(Integer page, Integer size) {
		PageHelper.startPage(page,size);
		return SysMenuMapper.selectAll();
	}
}

8 嗯呢,接着你需要在页面写个div标签 ,id 为pages,

<!-- 开始分页 -->
<div id="pages">
</div>

9 搞定。效果如图
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值