`

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

  

 

   

  

  • 大小: 24.6 KB
0
0
分享到:
评论

相关推荐

    Android代码-使用Kotlin实现的一个简单的记事本App

    在这个特定的案例中,我们关注的是一个使用Kotlin编程语言实现的简单记事本应用——"Tudou Notepad"。Kotlin作为Google官方推荐的Android开发语言,以其简洁、安全和交互性强的特点深受开发者喜爱。下面,我们将详细...

    Android中使用Kotlin实现一个简单的登录界面

    总结来说,使用Kotlin实现Android登录界面的优势在于代码简洁、可读性高,借助Anko库可以快速构建UI。通过理解Kotlin的基础语法、Anko DSL以及Android UI组件的工作原理,开发者能够轻松地创建出功能完善的登录界面...

    安卓Kotlin Coroutine协程使用案例代码

    安卓 Kotlin Coroutine协程 使用方式代码举例: 包含GlobalScope 、CoroutineScope 详细使用代码举例,相关介绍文章,可参考: https://xiaxl.blog.csdn.net/article/details/123383727

    Kotlin-基于Kotlin的SQL框架-数据库实现.zip

    另一个选择是Kotliquery,它是一个Kotlin编写的SQL查询库,允许开发者以Kotlin代码的形式编写SQL语句。它支持多种数据库引擎,提供了流式API,使得编写复杂的查询变得简单。 六、Android中的数据库实现——Room 在...

    kotlin实现的进度条

    本篇文章将深入探讨如何使用Kotlin在Android中实现进度条,并结合具体代码实例来解析`MyProgressBar`这个项目。 首先,我们需要在布局文件(如activity_main.xml)中定义一个ProgressBar。进度条有两种主要类型:...

    Android-SwiftKotlin将Swift代码转换为Kotlin的工具非常简单快捷

    然而,对于那些熟悉Swift的iOS开发者来说,如何将已有的Swift代码迁移到Android平台上的Kotlin项目,就成了一项挑战。这时,"SwiftKotlin"工具就应运而生,它提供了将Swift代码自动转换为Kotlin代码的功能,极大地...

    Android代码-使用 Kotlin 实现的一个 Dribbble 客户端

    :white_check_mark: Kotlin: Yes, fully written in Kotlin(~96%). :scream: :heart: :white_check_mark: Clean architecture: The whole project is based on uncle Bob's clean architecture approach. :white_...

    kotlin-examples,Kotlin代码示例.zip

    Kotlin是一种现代化的、静态类型的编程语言,主要面向Java虚拟机(JVM)和JavaScript运行环境,同时也支持原生平台。它由JetBrains公司开发,旨在提高开发者的生产效率,减少代码量,同时保持类型安全。在标题...

    Java 和 Kotlin的注解以及切面实现方式

    本篇文章将深入探讨Java和Kotlin中的注解使用及切面实现方式。 ### Java 注解 Java注解是一种元数据,它提供了在源代码中添加信息的方式,这些信息可以在编译时或运行时被解析。Java标准库中提供了多种内置注解,...

    kotlin实现的简易计算器

    本项目"Kotlin实现的简易计算器"是一个使用Kotlin编写的简单计算器应用程序,旨在帮助初学者理解Kotlin的基础语法以及如何在实际项目中运用这些语法特性。 首先,Kotlin中的类定义是构建程序的基本单元。在这个简易...

    Kotlin中使用BottomNavigationView实现底部导航

    最后,为了让小红点动画更吸引人,你可以考虑使用属性动画(Property Animation)来实现一个平滑的淡入淡出效果: ```kotlin if (hasNewNotifications) { ObjectAnimator.ofAlpha(notificationDot, 0f, 1f).apply ...

    Kotlin1-1 源代码

    Kotlin是一种现代的静态类型编程语言,由JetBrains开发,主要面向Java虚拟机(JVM)和JavaScript。它在2017年被Google宣布为Android开发的首选语言,因其强大的功能和对开发者友好的特性而受到广泛欢迎。 1. **...

    一本介绍如何将现有的 Java 代码重构为 Kotlin 代码的书籍

    本书《从Java到Kotlin:重构指南》由Duncan McGregor与Nat Pryce共同编写,是一本专为已经熟悉Java编程语言并希望将其现有代码转换为Kotlin的开发者准备的书籍。书中不仅提供了丰富的重构技巧,还包括了实用的示例和...

    Android-使用Kotlin写的实现Android的Recyclerview的多种item布局

    本教程将深入探讨如何在Android项目中使用Kotlin来实现这一功能。 首先,Recyclerview的基础知识是必要的。Recyclerview通过ViewHolder模式优化了性能,避免了大量的 findViewById() 调用。每个视图项都是一个...

    Android-Kotlin实现RecyclerView数据列表Demo

    本Demo主要展示了如何使用Kotlin语言来实现一个基本的RecyclerView数据列表。以下是关于这个主题的详细知识点: 1. **Kotlin简介**:Kotlin是一种现代、静态类型的编程语言,由JetBrains公司开发,被Google官方指定...

    Kotlin语言实现FlexboxLayout流式布局替换Recycleview实现单选/多选

    本文将深入探讨如何利用Kotlin语言实现FlexboxLayout来替代RecyclerView,并实现单选和多选功能。 首先,我们要了解FlexboxLayout。FlexboxLayout是Google为Android提供的一个布局组件,它基于Flexbox布局模型,这...

    Android代码-基于Kotlin实现的相机APP

    Phoenix的核心功能基于Kotlin实现,外层接口基于Java实现,方便Kotlin与Java双方的调用。 更多关于图像/视频编解码的文章 Android平台图像压缩方案 Android平台Camera开发实践指南 特点 功能相互独立,各个功能的...

    Android-使用Kotlin和Timber轻松实现Android日志记录

    本文将深入探讨如何使用Kotlin语言和Timber库来实现高效且易于管理的日志系统。 首先,让我们了解Kotlin。Kotlin是Google在2017年正式推荐的Android开发语言,它具有简洁、类型安全和与Java高度互操作的特点。相比...

    kotlin 编程语言中数据结构和算法 (DSA) 的实现_kotlin_代码_下载

    Kotlin,作为一种现代、类型安全的编程语言,以其简洁的语法和丰富的库支持,为实现高效的数据结构和算法提供了良好的平台。下面我们将深入探讨标题和描述中提到的各个知识点。 首先,我们来看数据结构: 1. **...

Global site tag (gtag.js) - Google Analytics