zoukankan      html  css  js  c++  java
  • 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的代码使用。

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

  • 相关阅读:
    Eclipse显示行号
    Eclipse中让Scala缩进变为4
    阿里云Maven仓库
    Eclipse格式化整个项目
    Spring拦截器
    Spring配置redis及使用
    Java加密数据库
    Eclipce远程调试
    服务器部署Java Web及微信开发调试
    基本MVC2模式创建新闻网站
  • 原文地址:https://www.cnblogs.com/symbol8888/p/8471505.html
Copyright © 2011-2022 走看看