Oracle中实现分页的SQL语句和在JSP页面实现分页技术

写了两个有关分页的SQL语句,希望对大家有点帮助...记住,只能在Oracle下使用。

1 获取总页数 
   SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)  
   AS  pages FROM XZQH  

SELECT DECODE(mod(COUNT(*),100),0,COUNT(*)/100,TRUNC(COUNT(*)/100,0)+1)AS  pages FROM XZQH

其中XZQH是表名,可以换成别的表格或者与别的表格相连或者加上查询条件....总之可以把XZQH换成FROM后的一切东西. 

100是没页显示的记录数,换成你想要的!!! 

生成结果是具有pages列的一个表格.可以用resultSet.getInt("pages")获得 

2 获取特定的记录数据 
   SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x="" where="" x.numbers="">90  

SELECT x.* from (SELECT z.*,rownum numbers from XZQH z where rownum<101) x="" where="" x.numbers="">90

其中XZQH的含义与上述一样,可以换成你任何想要的条件和表连接 

其中101和90是指定界限的数字,拿此例来说,是取出第90-----100条数据. 

      2.select x.* from (select y.*,rownum row_id from (select z.* from admin z )y)x where row_id between 90 and 101

好了,点到为止..具体在实践中该怎么用,大家自己慢慢琢磨吧!!! 





分页技术(写在jsp页面的): 
1、先定义: 
 int pageSize=3;//每页显示3条数据
 int pageNow=1;//当前显示页数
 int pageCount=0;//共有多少页(计算)
 int rowCount=0;//一共多少条数据(查表)


//动态接受PageNow的值从本页面的超链接处得到的值
 String pagenow=request.getParameter("pageNow");
 if(pagenow!=null){
  pageNow=Integer.parseInt(pagenow);//把接受的值传给pageNow
 }

2、获取rowCount: 

TestJDBC1 jdbc=new TestJDBC1();
 String sql="select count(*)from admin";
 ResultSet rs=jdbc.query(sql);
 try {
  while(rs.next()){
   rowCount=rs.getInt(1);//获得共多少条数据
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }

3、获取pageCount: 

//分多少页计算 
   //方法一 
   //if(rowCount%pageSize==0){ 
   // pageCount=rowCount/pageSize; 
   /


来源:博客园

上一篇: JVM参数对J2EE性能优化的影响

下一篇: java String和StringBuffer的区别

分享到: 更多