欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 11:55:30
...

 

      最近由于工作开发用到了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

 

    
使用kotlin 分页的另一种代码实现
            
    
    博客分类: kotlin kotlinmysqloracle分页 
 

 

   

            

 -- 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 < 数据范围  +  临时表)

  

 

   

  

  • 使用kotlin 分页的另一种代码实现
            
    
    博客分类: kotlin kotlinmysqloracle分页 
  • 大小: 24.6 KB