下面是三层嵌套的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语句实现分页(Oracle与SQL Server版本)...综上所述,通过SQL语句实现分页是一项非常实用的技术,特别是在处理大量数据时。开发者可以根据所使用的数据库类型选择最适合的方法来实现高效、简洁的分页查询。
### 数据库分页SQL语句实现 在开发MIS系统或Web应用系统时,经常会遇到对数据库进行分页处理的需求。这是因为数据量庞大时,一次性加载所有数据会给系统带来很大的负担,同时也会影响用户体验。因此,分页技术成为...
关于SQL Server SQL语句查询分页数据的解决方案 在日常工作中,我们经常需要处理大量数据,并从中获取特定页面的数据。特别是在Web应用开发中,为了提高用户体验,通常会将数据进行分页显示。针对这一需求,本文将...
使用SQL语句实现通用分页查询,支持模糊查询等。
SQL语句的分页通用代码实现是将数据集分割成多个部分,每次只加载一部分(即一页)到前端进行显示。这种方式在大数据量的查询中尤为重要,因为它避免了一次性加载所有数据可能导致的性能问题。 标题中的“sql语句写...
在某些情况下,为了更灵活地控制分页逻辑,可能需要手动编写SQL查询语句实现分页。这通常涉及到使用`OFFSET`和`FETCH NEXT`子句(在SQL Server 2012及以上版本中可用)或者使用子查询和计算行号的方法(对于早期...
### 使用简单的SQL语句实现的Oracle数据库分页技术 #### 环境:Oracle 9i 在Oracle数据库中实现分页查询是一项常见的需求,尤其是在处理大量数据时。本文将介绍一种利用简单SQL语句来实现Oracle数据库分页的方法,...
提供详细的sql语句,常用sql语句,sql语句的进阶过程
由于LINQ延迟执行,直到你真正遍历结果集时才会执行SQL语句。 ```csharp foreach (var customer in pagedQuery) { // 处理每个customer对象 } ``` 5. **优化性能**:在某些情况下,为了提高性能,你可能需要...
OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,分析其结构,并根据MySQL的语法规则进行转换,然后将转换后的SQL语句保存到指定的目标文件中。这个工具简化了手动...
其中,如何使用标准的SQL语句实现查询记录分页,是数据库操作中一个常见且实用的需求。分页查询不仅能够提高数据检索的效率,还能优化用户体验,尤其是在处理大量数据时显得尤为重要。下面,我们将详细解析几种实现...
本篇将详细介绍如何利用aspnetpager控件结合三层架构来实现SQL语句的分页。 aspnetpager控件是由第三方开发的,如SuperWebUI或DevExpress等,它提供了一种方便的方式来在网页上显示分页链接,允许用户按需加载每一...
用ORACLE的SQL语句实现多栏分页输出.RTF
利用SQL语句实现分页查询
Oracle JDBC分页实现是数据库操作中的一个重要环节,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页查询显得尤为重要。Oracle数据库提供了多种方法来实现分页查询,其中包括使用ROWNUM伪列、游标...
在Java中,我们需要获取前端传来的页码和每页大小,然后构造上述SQL语句并执行: ```java @PostMapping("getData") public Map, Object> getData(@RequestParam int page, @RequestParam int pageSize) { String ...
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
本文将深入探讨如何在C#\book项目中,利用SQL语句来实现数据分页。 ### SQL分页基本原理 SQL分页主要通过限制查询结果的数量来实现。在SQL Server中,常用的分页方法有两种:一种是使用`OFFSET`和`FETCH`关键字;...
本文将详细介绍如何在三种主流数据库系统——SQL Server、Access 和 Oracle 中利用 SQL 语句实现高效分页。 1. SQL Server 和 Access 数据库 在 SQL Server 和 Access 这两个微软数据库中,可以使用 `TOP` 关键字...