下面是三层嵌套的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实现分页显示
用SQL语句实现分页(Oracle版Sql Server版)
3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现
使用SQL语句实现通用分页查询,支持模糊查询等。
LINQ To SQL实现分页效果源码 VS2008 Frameworks3.5 LINQ To SQL 实现分页效果 数据库SQL 2005
用标准的SQL语句实现查询记录分页.txt
aspnetpager控件与三层sql语句的分页 利用三层的一个sql语句分页,
提供详细的sql语句,常用sql语句,sql语句的进阶过程
本例子使用简单的SQL语句实现Oracle数据库的分页动作。它没有使用PL/SQL语句(比如什么程序包、游标等),只是使用通用的、简单的SQL实现了数据库分页动作。 只要看懂了分页公式,那么这是一个通用的Oracle数据库...
用ORACLE的SQL语句实现多栏分页输出.RTF
利用SQL语句实现分页查询
c#\book\实现分页的sql语句
sql语句分页查询 自己总结下来的 希望能给大家一点帮助!
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
sqlserver分页查询语句;sqlserver分页查询语句;sqlserver分页查询语句;
在sql语句中分页,可以设置每页条数和查询第几页
三种数据库利用SQL语句进行高效果分页,分页
用ORACLE的SQL语句实现多栏分页输出.pdf
本文分析了几种实现分页的方法,介绍了一个通过标准的SQL语句来得到符合条件的数据。