使用kotlin 分页的另一种代码实现

 

      最近由于工作开发用到了kotlin,其中分页的实现由于数据的实现不是非常理想,于是本人就写了一个自

 

 己的分页代码实现

 

    

  res.dataArray = JsonArray()
            // 手动分页
            var totalDataNum = resDataArray.size()
            var page = JsonObject()
            var totalPageSize = 0
            if((totalDataNum %10) >0)  totalPageSize = (totalDataNum/10 + 1) else totalPageSize =  (totalDataNum/10)

            // 每页大小
            page.put("size",10)
            // 总页数
            page.put("totalPage",totalPageSize)
            // 总数
            page.put("totalCount",totalDataNum)
            // 当前页
            page.put("currentPage",currentPage)
            // 返回当前页数据封装
            if(resDataArray.size()>10){
                // 多页
                var i = (currentPage-1)*10
                while(true){
                    if( currentPage*10 >i){
                        println("i == " + i)
                        if(i<totalDataNum){
                            println("resDataArray.getValue(i ) = " + resDataArray.getValue(i ) )
                            resDataArr.add(resDataArray.getValue(i ))
                            i++
                        }else{
                            break
                        }
                    }else{
                        break
                    }
                }
                println("resDataArr======" + resDataArr)
                res.dataArray = resDataArr
            }else{
                // 一页
                println("resDataArr======" + resDataArray)
                res.dataArray = resDataArray
            }

 

 

   如果自己设计分页,其中需要考虑几个参数

 

   总数目:这里可以通过返回数据.size 获取

 

   每页条数:这里一般是由前端传递过来 (这里我后台写死了10,如果需要的话,把10换成一个参数即可 )

  

   总页数: 总数目 %  每页条数  > 0  =  ( 总数目 %  每页条数)  : ( 总数目 %  每页条数 + 1)

 

  当前页: 一般是从前端传递过来 (我这里设计的时候,直接从list  集合取,通过list .get(当前页的数据范

 

围) 的形式 获取)

 

    总结:其实分页一般是通过数据分页

  

             注意点:分页最好写上排序,不然分页查询的数据有可能每次会不一样 

 

   mysql :limit  和  offset  关键字

 

   如(我们查询如下的视图 v_course_count_teacher

 

    

 

 

   

            

 -- mysql 分页原理

SELECT * FROM `v_course_count_teacher` ORDER BY teacher  LIMIT 2 ; -- (默认从0开始)

SELECT * FROM `v_course_count_teacher` ORDER BY teacher  LIMIT 1 ,2 ; -- 第几个开始(默认从0开始)

SELECT * FROM `v_course_count_teacher` ORDER BY teacher  LIMIT 3 OFFSET 3 ;-- 条数  从第几个开始

 

  

  oracle:rownum 关键字 (rownum < 数据范围  +  临时表)

  

 

   

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值