`

常用数据库分页sql

 
阅读更多
Oracle 分页
SELECT x.* 
from (SELECT t.*,rownum rn from table t where rownum <= lastRowNumInPage) x 
where x.rn >= startRowNum 


Mysql分页
select * from table limit start, pageNum 


DB2分页
select * from (
select t.* , rownumber() over( order by c) as rowno  from table t ) temp where temp.rowno between 1 and 10 


HSQL分页
select limit startIndex recordCount * from xtable


SQLServer分页
SELECT *
  FROM ( SELECT Top N *
  FROM (SELECT Top (M + N - 1) * FROM table Order by pk desc) t1 ) t2
  Order by pk asc



spring jdbcTemplate + mysql 分页java代码
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

public class Pagination {
	
	public static final int NUMBERS_PER_PAGE = 10;
	private int totalPages;	// 总页数
	private int page;	// 当前页码
	private List resultList;	// 结果集存放List

	public Pagination(String sql, int currentPage, int numPerPage,JdbcTemplate jTemplate) {
		if (jTemplate == null) {
			throw new IllegalArgumentException(
					"com.starhub.sms.util.Pagination.jTemplate is null,please initial it first. ");
		} else if (sql == null || sql.equals("")) {
			throw new IllegalArgumentException(
					"com.starhub.sms.util.Pagination.sql is empty,please initial it first. ");
		}
		
		String countSQL = getSQLCount(sql);
		setPage(currentPage);
		setTotalPages(numPerPage,jTemplate.queryForInt(countSQL));
		int startIndex = (currentPage - 1) * numPerPage;	//数据读取起始index
		
		StringBuffer paginationSQL = new StringBuffer(" ");
		paginationSQL.append(sql);
		paginationSQL.append(" limit "+ startIndex+","+numPerPage);
		setResultList(jTemplate.queryForList(paginationSQL.toString()));
	}
	
	public String getSQLCount(String sql){
		String sqlBak = sql.toLowerCase();
		String searchValue = " from ";
		String sqlCount = "select count(*) from "+ sql.substring(sqlBak.indexOf(searchValue)+searchValue.length(), sqlBak.length());
		return sqlCount;
	}
	
	public int getTotalPages() {
		return totalPages;
	}
	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}
	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public List getResultList() {
		return resultList;
	}
	public void setResultList(List resultList) {
		this.resultList = resultList;
	}
	// 计算总页数
	public void setTotalPages(int numPerPage,int totalRows) {
		if (totalRows % numPerPage == 0) {
			this.totalPages = totalRows / numPerPage;
		} else {
			this.totalPages = (totalRows / numPerPage) + 1;
		}
	}

}
分享到:
评论

相关推荐

    数据库分页SQL

    常用数据库分页sql(),1.oracle数据库分页;2.DB2数据库分页;3.SQL Server 2000数据库分页;4.SQL Server 2005数据库分页5.MySQL数据库分页

    常用数据库sql分页

    数据库分页是指从大规模的数据集中提取指定的记录数,以减少数据传输量,提高应用程序的性能和用户体验。常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其特有的分页机制和语法...

    数据库基本概念 ,常用数据库,sql server数据库,Access数据库,sql语句,数据库连接,数据库分页显示

    #### 二、常用数据库类型 - **MS Access**:是一种桌面关系数据库管理系统,适用于个人或小型企业。它易于使用,功能强大,支持多种数据类型。 - **SQL Server**:是由微软开发的一种关系型数据库管理系统,广泛应用...

    常用的数据库分页语句

    以下是对SQL Server、Oracle和MySQL这三种常用数据库系统的分页查询语句的详细解释。 **SQL Server** 在SQL Server中,分页查询通常涉及`TOP`关键字配合子查询和`ORDER BY`来实现。一个通用的分页查询模板如下: `...

    三种数据库利用SQL语句进行高效果分页

    #### Access 数据库分页查询 Access 数据库也支持类似 SQL Server 的分页查询方法。例如: ```sql SELECT TOP 10 * FROM components WHERE ID NOT IN ( SELECT TOP 10 * 10 ID FROM components ORDER BY ID ) ...

    几种数据库常见分页sql

    本文将详细介绍在SQL Server、Oracle以及MySQL这三种常用数据库中实现分页查询的方法。 ### SQL Server 分页查询 #### 方法一:使用 `TOP` 关键字 SQL Server 提供了 `TOP` 关键字来进行分页查询。这种方式比较...

    linq分页方法步骤在注释里_生成数据库分页及sql语句

    首先,数据库分页是处理大量数据时非常常用的技术,它可以提高网页或应用程序的性能,避免一次性加载所有数据导致的内存压力和用户界面响应延迟。LINQ提供了方便的方法来实现这一功能。 1. **创建数据上下文** 在...

    mysql数据库实现分页

    在MySQL中,最常用的分页查询方式是使用`LIMIT`和`OFFSET`关键字。`LIMIT`用于指定每页显示的记录数,而`OFFSET`用于跳过多少条记录,达到从特定位置开始返回结果的目的。 例如,要获取第2页,每页显示10条记录的...

    数据库分页数据库分页数据库分页数据库分页

    ### 数据库分页技术详解 #### 一、引言 在大数据时代,高效的数据管理和查询技术变得尤为重要。其中,数据库分页技术作为一种提高用户体验、优化数据检索效率的重要手段,在各类应用系统尤其是Web应用中得到了广泛...

    php 数据库分页显示

    PHP作为常用的后端开发语言之一,在处理数据库分页方面有着成熟的解决方案。 #### 分页查询的SQL语句 在PHP中实现数据库分页显示的关键在于构造正确的SQL语句。根据题目中的描述,主要使用的SQL语句如下: ```sql...

    易语言一个简单的数据库分页例程

    在这个“易语言一个简单的数据库分页例程”中,我们将探讨如何使用易语言来实现数据库数据的分页显示。 在数据库应用中,分页是常见的数据展示方式,它可以帮助用户更有效地浏览大量数据,避免一次性加载所有数据...

    常用数据库命令sql文档

    "常用数据库命令sql文档"这个压缩包文件包含了关于SQL的基础、中级和核心语句的学习资料,主要适用于数据库管理员、开发人员或对数据库操作感兴趣的人群。 SQL基础: 1. 数据库创建:SQL允许用户创建新的数据库,如...

    单数据集分页SQL实现层式报表

    这一过程涉及到对不同数据库类型的处理策略,特别是对于那些不能直接生成分页SQL的数据库,如Access。接下来,我们将详细阐述以下知识点: 1. 层式报表的概念与应用场景 层式报表是一种在报表开发工具中常用的报表...

    数据库分页优化技术分析与实现

    在介绍数据库分页优化技术时,首先应当明确传统分页查询方法所存在的问题。在传统方法中,分页查询通常采用(limit, offset)方式,但这种方式随着数据量的增长及翻页数量的增加,查询效率会显著降低。尤其在数据量较...

    数据库分页代码

    数据库分页是Web应用开发中常见的一种技术,用于在大量数据中实现高效的浏览体验,避免一次性加载所有数据导致页面响应慢或内存压力过大。这里我们将深入探讨如何在Java环境下实现数据库分页,并结合UTF-8编码标准...

    数据库分页查询语句

    ### 数据库分页查询语句 #### 概述 在处理大量数据时,为了提高用户体验并减轻服务器压力,我们通常采用分页的方式展示数据。不同的数据库管理系统(DBMS)提供了各自的方法来实现分页功能。本文将详细介绍Oracle...

    基于MVC模式的数据库分页显示

    【数据库分页显示】在开发WEB应用系统时,特别是面对大量数据时,分页显示是一项重要的优化技术。它避免一次性加载所有数据导致的性能下降和用户体验不佳。在MySQL数据库中,可以使用`LIMIT`关键字进行分页,例如`...

    数据库分页技术超级导航条

    数据库分页技术是Web开发中一个非常重要的概念,特别是在处理大量数据时,为了提高用户体验和系统性能,分页是必不可少的。"数据库分页技术超级导航条"可能是指一种优化了的分页实现,它结合了导航条的功能,使得...

    Oracle 3种分页SQL方法比较

    本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT WITH OFFSET语法。这三种方法各有优缺点,适用于不同的场景。 1. ROWNUM方法: ROWNUM是Oracle中最基础...

    常用类 数据库连接类 分页类

    本资源包包含了一些基本但非常实用的PHP类,主要包括数据库连接类、分页类以及图像处理类。接下来,我们将详细介绍这些类及其相关知识点。 1. **数据库连接类**: - PDO (PHP Data Objects):PDO 是 PHP 提供的一...

Global site tag (gtag.js) - Google Analytics