自创超级简洁的【分页查询】


我使用的框架是springMVC+myBatis,数据库是mySql


首先来看一下用到的sql语句:

    /先根据一个id条件,查询出总共多少条数据,在做计算的时候要用到,这里的topicId是我自己的查询条件,你们可根自己项目需求更改
    SELECT COUNT(1) FROM bbs_topic_reply WHERE topicId=?

    //做limit分页
    SELECT * FROM bbs_topic_reply
    WHERE topicId=?
    ORDER BY createTime desc
    LIMIT ?,?  




第一步:建立VO


    public class PageVo {   
        //当前第几页(前台传过来的)   
        private Integer pageNo;  
        //总共多少页(后台计算的)   
        private Integer totalPage;  
        //一共多少条数据(数据库查询的)  
        private Integer totalRecordSize;
    }



第二步:dao层


    //用来查询总共有多少条数据(count)
    Integer pageCount(Integer topicId);
    //做分页用的dao层方法
    List findByTopicId(@Param("topicId") Integer topicId, @Param("page")Integer page, @Param("pageSize")Integer pageSize);




省略service层...



第三步:controller层


    //这里的topicId是我自己where的查询条件,你们可根据自己的需求去写
    //pageNo是前台传来的,当前是第几页
    @RequestMapping(value = "pageList",method = RequestMethod.GET)
    public void pageList(HttpServletResponse res,Integer topicId,IntegerpageNo)throws IOException{           
        pageVo= new PageVo();
        //设置一共多少条数据
        pageVo.setTotalRecordSize(topicReplyService.pageCount(topicId));
        //设置总共多少页,按照每页显示10条来算
        pageVo.setTotalPage(topicReplyService.pageCount(topicId)/10);
        //sql语句中limit?,?的第一个问号,代表总共的数据中,从第几条开始显示,比如每页显示10条,那么翻到了第二  页,就要从第11条开始
        Integer firstPage=(pageNo-1)*10;
        //返回结果集
        List pageVoList = topicReplyService.findByTopicId(topicId,firstPage,10);
        res.setContentType("application/json");
        //通过PrintWriter类将数据传到前台
        Gson gson = new Gson();
        String jsons = gson.toJson(pageVoList.toString());
        PrintWriter printWriter = res.getWriter();
        printWriter.print(jsons);
        printWriter.flush();
        printWriter.close();
    }




第四步:页面通过ajax进方法:

这里用到了一个分页显示的插件jqPaginator,大家可以到某度搜索下载一下,非常好理解,实在不懂的可以留言给我



    
    




    $(function(){
            $('#comments-paginator').jqPaginator({
                totalPages: 100,
                visiblePages: 5,
                currentPage: 1,
                onPageChange: function (num, type) {
                    $.ajax({
                        url:"/wechat/bbs/pageList",
                        data:{"pageNo":num,"topicId":${topic.id}},
                        type:"GET",
                        contentType:"application/json",
                        success:function(data){
                        //重点说一下16-30行的代码,由于我们后台获得到的是一个list数组集,格式为[{},{}],取值比较麻烦,
                        //所以我们后台将这种格式,通过Gson转化为String,然后在前端通过下面的代码,转化为数组的形式,
                        //这段代码也是我//在网上千辛万苦找到的,但是忘记出处是哪里了,所以请原著大神看到,不要怪罪臣妾
                        //不过我也没看懂,会用就行,嘿嘿
                             var src= data;
                             var rObj = /{([^=]+=[^,]+),\s+([^={]+=[^,}]+)*/g
                             var m = src.match(rObj)
                             var rNvp = /([^,={\s]+=[^,]+)/g
                             var list = [];
                             for(var i=0;i
        
        





    这是最后的样子:





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

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

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值