`
dengyll
  • 浏览: 93418 次
社区版块
存档分类
最新评论

sql语句实现分页技术

 
阅读更多

下面是三层嵌套的sql语句,使用其可以实现web前端的分页效果,要注意书写格式

select user_id, user_name, password, contact_tel, email, create_date
from(
       select rownum rn, user_id, user_name, password, contact_tel, email, create_date
       from
       (
              select user_id, user_name, password, contact_tel, email, create_date from t_user where user_id <> 'root' order by user_id
       ) where rownum <= 4
) where rn > 1

示例:

	/**
	 * 分页查询
	 * @param pageNo  第几页
	 * @param pageSize  每页多少条数据
	 * @return pageModel
	 */
	public PageModel<User> findUserList(int pageNo, int pageSize){
		StringBuffer sbSql = new StringBuffer();
		sbSql.append("select user_id, user_name, password, contact_tel, email, create_date ")
			 .append("from ")
			 .append("( ")
			 .append("select rownum rn, user_id, user_name, password, contact_tel, email, create_date ")
			 .append("from ")
			 .append("( ")
			 .append("select user_id, user_name, password, contact_tel, email, create_date from t_user where user_id <> 'root' order by user_id ")
			 .append(") where rownum <= ? ")
			 .append(") where rn > ? ");
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		PageModel<User> pageModel = null;
		try{
			conn = DbUtil.getConnection();
			pstmt = conn.prepareStatement(sbSql.toString());
			pstmt.setInt(1, pageNo * pageSize);
			pstmt.setInt(2, (pageNo - 1) * pageSize);
			rs = pstmt.executeQuery();
			List<User> userList = new ArrayList<User>();
			while (rs.next()){
				User user = new User();
				user.setUserId(rs.getString("user_id"));
				user.setUserName(rs.getString("user_name"));
				user.setPassword(rs.getString("password"));
				user.setContactTel(rs.getString("contact_tel"));
				user.setEmail(rs.getString("email"));
				user.setCreateDate(rs.getTimestamp("create_date"));
				userList.add(user);
			}
			pageModel = new PageModel<User>();
			pageModel.setList(userList);
			pageModel.setTotalRecords(getTotalRecords(conn));
			pageModel.setPageSize(pageSize);
			pageModel.setPageNo(pageNo);
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			DbUtil.close(rs);
			DbUtil.close(pstmt);
			DbUtil.close(conn);
		}
		return pageModel;
	}

分享到:
评论

相关推荐

    在SQL Server中通过SQL语句实现分页查询

    ### 在SQL Server中通过SQL语句实现分页查询 #### 一、背景介绍 在数据库应用开发中,分页查询是一种常见的技术手段,用于改善用户体验并提高系统性能。特别是当数据量庞大时,一次性加载所有数据到前端不仅会导致...

    用SQL语句实现分页(Oracle版Sql Server版)

    ### 使用SQL语句实现分页(Oracle与SQL Server版本)...综上所述,通过SQL语句实现分页是一项非常实用的技术,特别是在处理大量数据时。开发者可以根据所使用的数据库类型选择最适合的方法来实现高效、简洁的分页查询。

    数据库分页SQL语句实现

    ### 数据库分页SQL语句实现 在开发MIS系统或Web应用系统时,经常会遇到对数据库进行分页处理的需求。这是因为数据量庞大时,一次性加载所有数据会给系统带来很大的负担,同时也会影响用户体验。因此,分页技术成为...

    关于SQL Server SQL语句查询分页数据的解决方案

    关于SQL Server SQL语句查询分页数据的解决方案 在日常工作中,我们经常需要处理大量数据,并从中获取特定页面的数据。特别是在Web应用开发中,为了提高用户体验,通常会将数据进行分页显示。针对这一需求,本文将...

    使用SQL语句实现通用分页查询

    使用SQL语句实现通用分页查询,支持模糊查询等。

    sql语句写分页通用代码

    SQL语句的分页通用代码实现是将数据集分割成多个部分,每次只加载一部分(即一页)到前端进行显示。这种方式在大数据量的查询中尤为重要,因为它避免了一次性加载所有数据可能导致的性能问题。 标题中的“sql语句写...

    SQL 数据库实现分页技术教程

    在某些情况下,为了更灵活地控制分页逻辑,可能需要手动编写SQL查询语句实现分页。这通常涉及到使用`OFFSET`和`FETCH NEXT`子句(在SQL Server 2012及以上版本中可用)或者使用子查询和计算行号的方法(对于早期...

    使用简单的SQL语句实现的Oracle数据库分页技术

    ### 使用简单的SQL语句实现的Oracle数据库分页技术 #### 环境:Oracle 9i 在Oracle数据库中实现分页查询是一项常见的需求,尤其是在处理大量数据时。本文将介绍一种利用简单SQL语句来实现Oracle数据库分页的方法,...

    分页sql语句以及sql语句语法大全

    提供详细的sql语句,常用sql语句,sql语句的进阶过程

    LINQ To SQL实现分页效果源码

    由于LINQ延迟执行,直到你真正遍历结果集时才会执行SQL语句。 ```csharp foreach (var customer in pagedQuery) { // 处理每个customer对象 } ``` 5. **优化性能**:在某些情况下,为了提高性能,你可能需要...

    Oracle Sql语句转换成Mysql Sql语句

    OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,分析其结构,并根据MySQL的语法规则进行转换,然后将转换后的SQL语句保存到指定的目标文件中。这个工具简化了手动...

    用标准的SQL语句实现查询记录分页

    其中,如何使用标准的SQL语句实现查询记录分页,是数据库操作中一个常见且实用的需求。分页查询不仅能够提高数据检索的效率,还能优化用户体验,尤其是在处理大量数据时显得尤为重要。下面,我们将详细解析几种实现...

    aspnetpager控件与三层sql语句的分页

    本篇将详细介绍如何利用aspnetpager控件结合三层架构来实现SQL语句的分页。 aspnetpager控件是由第三方开发的,如SuperWebUI或DevExpress等,它提供了一种方便的方式来在网页上显示分页链接,允许用户按需加载每一...

    用ORACLE的SQL语句实现多栏分页输出

    用ORACLE的SQL语句实现多栏分页输出.RTF

    利用SQL语句实现分页查询

    利用SQL语句实现分页查询

    oracle-jdbc分页实现(只需传入sql语句即可实现分页)

    Oracle JDBC分页实现是数据库操作中的一个重要环节,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页查询显得尤为重要。Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标...

    sqlserver 实现分页的前台代码 以及后台的sqlserver语句

    在Java中,我们需要获取前端传来的页码和每页大小,然后构造上述SQL语句并执行: ```java @PostMapping("getData") public Map, Object&gt; getData(@RequestParam int page, @RequestParam int pageSize) { String ...

    几条常见的数据库分页SQL 语句

    几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。

    c#\book\实现分页的sql语句

    本文将深入探讨如何在C#\book项目中,利用SQL语句来实现数据分页。 ### SQL分页基本原理 SQL分页主要通过限制查询结果的数量来实现。在SQL Server中,常用的分页方法有两种:一种是使用`OFFSET`和`FETCH`关键字;...

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

    本文将详细介绍如何在三种主流数据库系统——SQL Server、Access 和 Oracle 中利用 SQL 语句实现高效分页。 1. SQL Server 和 Access 数据库 在 SQL Server 和 Access 这两个微软数据库中,可以使用 `TOP` 关键字...

Global site tag (gtag.js) - Google Analytics