• oracle、mysql、db2三大数据库分页方法的整理


    最近项目中经常会涉及到代码中支持三种数据库的分页的功能,自己整理了关于三种数据库的分页的写法,分享给大家,以供大家使用。希望能帮到更多的码友!

    先来看一个代码片段:

    1         String page = alarmCfgMessageForm.getPage();
    2         String limit = alarmCfgMessageForm.getLimit();
    3         long fromNum = 0;
    4         long toNum = 0;
    5         fromNum = ((Integer.parseInt(page) - 1) * Integer.parseInt(limit)) + 1;
    6         toNum = Integer.parseInt(page) * Integer.parseInt(limit);    

    上面代码片段使用的是oracle和mysql分页显示的计算。引用后,再看下面的代码片段:

     1   if (JudgeDB.IEAI_DB_TYPE == oracle)
     2    {
     3         sql = "SELECT * FROM  ( SELECT  rownum AS RN ,  A.* FROM ( " + sql + " )  A "
     4             + " ) WHERE RN BETWEEN  " + fromNum + "  AND  " + toNum;
     5    } else if (JudgeDB.IEAI_DB_TYPE == db2)
     6    {
     7         sql = "SELECT * FROM  ( SELECT  ROW_NUMBER() OVER() AS RN ,  A.* FROM ( " + sql
     8             + ")  A ) WHERE RN BETWEEN  " + fromNum + "  AND  " + toNum;
     9    } else if (JudgeDB.IEAI_DB_TYPE == mysql)
    10    {
    11         // 计算 mysql 分页最后一页显示条数不足时,取总数的余数为最后一页数量
    12         long start = Long.parseLong(alarmCfgMessageForm.getPage());
    13         long tolimit = Long.parseLong(alarmCfgMessageForm.getLimit());
    14         long curpage = ((start - 1) * tolimit);
    15         sql += " limit " + curpage + "," + tolimit;
    16    }

    上面代码段是分别写出了三个数据库各自的用法,而db2的语法与oracle的语法相似,因此,db2的判断也同样支持oracle的代码使用。

    以上就是个人整理的三种数据库的写法,如果有什么不对的地方,欢迎指出。

  • 相关阅读:
    关东升的《从零開始学Swift》即将出版
    input子系统驱动学习之中的一个
    linux 搭建https server (apache)
    Http协议具体解释
    三天学会HTML5——SVG和Canvas的使用
    阿里2016实习offer五面经验与总结
    你所须要知道的项目管理知识
    【hadoop2.6.0】用C++ 编写mapreduce
    【leetcode】 Letter Combinations of a Phone Number(middle)
    【杂感】目标跟踪的用途
  • 原文地址:https://www.cnblogs.com/symbol8888/p/8471505.html
Copyright © 2020-2023  润新知