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

先来看一个代码片段:

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

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

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

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

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

oracle、mysql、db2三大数据库分页方法的整理的更多相关文章

  1. Mysql DB2等数据库分页的实现

    一.Mysql的分页 (一).MySQL分页的实现,使用关键字:Limit    语法:select * from tableName Limit A,B; 注释:tableName:表名 A:查询的 ...

  2. ORACLE/MYSQL/DB2等不同数据库取前几条记录

    选取数据库中记录的操作是最基础最频繁的,但往往实际应用中不会这么简单,会在选取记录的时候加上一些条件,比如取前几条记录,下面就总结了如何在ORACLE/MYSQL/DB2等一些热门数据库中执行取前几条 ...

  3. (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨

    原文:http://www.talkwithtrend.com/Article/178339 数据库建设过程中,高可用是每一个企业数据中心数据库建设过程中至关重要的一个关注点,直接关系到业务连续性和稳 ...

  4. MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序

    MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序. 下面给出3中比较常用的排序方式,mark一下 1.常规排序ASC DESC ASC 正序 ...

  5. 如何连接oracle,mysql, SQL Server数据库(Java版)

    先添加上连接oracle,MySQL的驱动路径和数据库连接URL: MySQL: final String DBDRIVER = "org.gjt.mm.mysql.Driver" ...

  6. 关于PDF.NET开发框架对Mysql Sqlite PostgreSQL数据库分页支持的个人看法

    关于PDF.NET开发框架的名字由来  在设计www.pwmis.com站点的时候,考虑到架构的兼容性和将来升级的可能性,最重要的是没有足够的时间去为网站添加和维护很多复杂的程序,所以在借鉴前人成功经 ...

  7. MySQL 快速复数据库的方法

    为了方便快速复制一个数据库,可以用以下命令将db1数据库的数据以及表结构复制到newdb数据库 创建新的数据库 #mysql -u root -p123456 mysql>CREATE DATA ...

  8. 新版数据库分页方法(Sql server2012)

    1. ROW_NUMBER() 的分页方法 dbcc freeproccache dbcc dropcleanbuffers set statistics time on set statistics ...

  9. mysql、sqlServer、hsql、oracle、db2各数据库支持的字段类型与最大精度

随机推荐

  1. 《图解 HTTP 》阅读 —— 第五章

    第5章 与HTTP协作的web服务器 一台服务器可以托管多个域名. 在相同的IP地址下,虚拟主机可以寄存多个不同主机名和域名的网站,所以在发送HTTP请求时,必须在Host首部内指定完整的主机名和域名 ...

  2. MapPartition和Map的区别

    在Spark中有map和mapPartitions算子,处理数据上,有一些区别 主要区别: map是对rdd中的每一个元素进行操作: mapPartitions则是对rdd中的每个分区的迭代器进行操作 ...

  3. centos7.2部署docker-17.06.0-ce的bug:Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"\"".

    现象: 操作系统:centos 7.2 kernel 3.10.0-327.el7.x86_64 mesos:1.3.0 docker:docker-17.06.0-ce 在做mesos验证时,通过m ...

  4. ES6的新特性(11)——Class 的继承

    Class 的继承 简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多. class Point { } class ColorPoint ...

  5. ElasticSearch之CURL操作(有空再去整理)

    https://www.cnblogs.com/jing1617/p/8060421.html ElasticSearch之CURL操作 CURL的操作    curl是利用URL语法在命令行方式下工 ...

  6. scrum立会报告+燃尽图(第三周第六次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2286 项目地址:https://coding.net/u/wuyy694 ...

  7. Requests库与HTTP协议

    了解HTTP协议 请求与响应模式的协议: 用户提出对URL(用来定位网络中的资源位置)地址数据的操作请求,服务器给予相应. 无状态的应用层协议:两次请求之间不会互相影响. HTTP协议支持的请求种类: ...

  8. Ubuntu中Google Chrome安装

    转载自博客 1. 方法一   1.在ubuntu中启动终端   2.在终端中,输入以下命令: sudo wget http://www.linuxidc.com/files/repo/google-c ...

  9. Windows下IntelliJ IDEA中调试Spark Standalone

    参考:http://dataknocker.github.io/2014/11/12/idea%E4%B8%8Adebug-spark-standalone/ 转载请注明来自:http://www.c ...

  10. 词法分析用c++实现的

    #include<stdio.h>#include<string.h>int i,j,k,sign,flag,number,run;char ch;char word[10]; ...