`

jsp + oracle 排序分页 高效sql语句

阅读更多

oracle 分页

1. 最好还是利用分析函数
row_number() over ( partition by col1 order by col2 )

比如想取出100-150条记录,按照tname排序

select tname,tabtype from (
   select tname,tabtype,row_number() over ( order by tname ) rn from tab
)
where rn between 100 and 150;

2. 直接使用rownum 虚列
select tname,tabtype from (
   select tname,tabtype,rownum rn from tab where rownum <= 150
)
where rn >= 100;
使用序列不能基于整个记录集合进行排序,如果指定了order by子句,排序的的是选出来的记录集的排序.

------------------------------------------------------------------------
经过测试,在100万条数据的表中,检索数据的时候,方法2的速度要比方法1要快的.


排序分页

说明:Oracle下用rownum进行分页时 很容易出现排序的错乱。


但多套一层select 就能很好的解决该问题,特此记录,语句如下:

select t2.* from (select t1.*, rownum rn from (select * from tb_courseinfo order by rownum  desc )t1 where rownum <= 150 )t2 where rn >100


不懂具体效率怎么样,和上边一样应该还可以。




实际例子代码如下

int curpage=1;//当前页
int page_record=20;//每页显示的记录数
int introwcount=0; // 记录数
if(request.getParameter("page")==null||Integer.parseInt(request.getParameter("page"))<=0)
{
curpage = 0;
}
else
{
curpage=Integer.parseInt(request.getParameter("page"))-1;//获取传递的值,需要显示的页
}

String sql = "select t2.* from (select t1.*, rownum rn from (select * from tb_courseinfo order by rownum  desc )t1 where rownum <= "+(curpage+1)*page_record+" )t2 where rn > "+curpage*page_record;



分享到:
评论

相关推荐

    jsp+oracle实现简单的分页

    为了与Oracle数据库进行交互,通常我们需要编写Java代码来建立连接并执行SQL语句。在这个例子中,`DbUtil`类被设计为单例模式,用于管理数据库连接。单例模式确保在整个应用中只存在一个`DbUtil`实例,以防止资源...

    jsp+oracle常用分页功能

    1. SQL查询:Oracle数据库中的SQL语句,如`SELECT * FROM 表名 LIMIT 起始行号, 行数`在Oracle中通常替换为`SELECT * FROM (SELECT * FROM 表名) WHERE ROWNUM 分页上限`,这里的ROWNUM是Oracle特有的行号函数。...

    SSH+ORACLE通用分页

    总的来说,"SSH+Oracle通用分页"是Java Web开发中常见的需求,它涉及到SSH框架的集成使用和Oracle数据库的高效查询策略。理解并熟练掌握这些知识,对于开发高性能、用户体验良好的Web应用至关重要。在实际项目中,还...

    jsp + oracle分页简单实用

    - 准备SQL语句(例如`"select name,age from test"`)并执行查询。 5. **计算总页数和记录总数**: - 使用`ResultSet`对象的`last()`方法移动结果集指针到最后一条记录,然后调用`getRow()`方法获取记录总数。 - ...

    jsp+JavaBean+Servlet_Oracle和Mysql分页

    在Java中,通常通过PreparedStatement设置SQL语句的条件,实现基于LIMIT和OFFSET的模拟分页。项目中的"pagination_4_Oracle"可能包含了Oracle分页的具体实现。 5. MySQL数据库分页:MySQL提供了LIMIT关键字,可以...

    java+jsp+servlet+dao+oracle做得分页 增删改查操作

    综上所述,"java+jsp+servlet+dao+oracle做得分页 增删改查操作"是一个典型的Java Web应用开发流程,涉及了前端展示、后端处理、数据库交互以及分页技术。理解这些技术的原理和协作方式,对于理解和开发类似的Web...

    留言板管理_源代码_jsp+oracle经典实例

    通过JDBC(Java Database Connectivity)接口,JSP页面能够与Oracle数据库交互,执行SQL语句,读取或更新数据。 系统的核心功能,例如用户登录验证、留言提交、留言查看、数据分页显示等,都涉及到了JSP页面与...

    JSP+JDBC_真分页(基于Oracle数据库分页).

    总的来说,JSP和JDBC结合Oracle数据库的分页技术能帮助开发者构建高效、响应式的数据展示界面。理解如何正确地构造SQL查询和管理JDBC资源是实现这一目标的关键。同时,优化分页策略,如通过索引和缓存提高性能,也是...

    JSP+Oracle数据库组建动态网站经典实例.rar

    - JDBC(Java Database Connectivity):Java平台的标准API,用于与各种数据库建立连接,执行SQL语句和处理结果集。 - 驱动管理:加载JDBC驱动,例如Oracle的ojdbc.jar,通过`Class.forName()`方法注册驱动。 - ...

    JSP+Oracle留言板

    开发者需要创建一个适合的表结构来存储这些数据,并编写SQL语句进行数据的插入、查询和更新操作。 实现【JSP+Oracle留言板】的步骤大致如下: 1. 数据库设计:创建一个名为`MESSAGE`的表,包含字段如`ID`(主键)、...

    使用JSP+JavaBean+Servlet实现数据分页

    5. **分页逻辑**:在Servlet中,我们需要根据用户请求的页码调整SQL查询语句,通常是通过在`SELECT`语句中添加`LIMIT`和`OFFSET`子句(对于MySQL)或`ROWNUM`(对于Oracle)来限制返回的行数。同时,我们还需要计算...

    完美整合(通用分页)SSH+Oracle (需要自己加入jar包,只是源码)

    - 自定义SQL语句,通过设置LIMIT或OFFSET关键字进行分页(Oracle支持ROWNUM伪列进行分页)。 - 使用第三方分页库,如PageHelper等。 项目中只提供源码,意味着你需要自行配置项目的构建环境,如Maven或Gradle,...

    jsp+jdbc_oracle增删改查过滤分页排序

    在JSP中,我们通过JDBC与Oracle数据库建立连接,执行SQL语句,实现数据的增删改查。以下是关键步骤: 1. **建立连接**:使用`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码来获取数据库连接。 ...

    JSP+JDBC_真分页(基于Oracle数据库分页)笔记

    这需要在数据库层面编写特定的SQL查询,利用Oracle的ROWNUM或者ROWNUMBER()函数来限制返回的记录数,从而实现高效的数据分页。例如,以下是一个简单的示例: ```sql SELECT * FROM (SELECT ROW_NUMBER() OVER ...

    JSP+Oracle9i+Eclipse学生成绩管理系统课程设计

    在本系统中,可能设计了如“学生表”、“课程表”、“成绩表”等关系型数据库,通过SQL语句进行数据的增删改查。例如,"SCORE数据库说明.doc"很可能包含了关于数据库表结构、字段说明以及数据关系的设计文档。 再者...

    jsp+oracle成绩管理源码

    通过深入理解这些知识点,开发者可以构建高效、稳定且易于维护的JSP+Oracle成绩管理系统,满足教育机构的日常成绩管理工作需求。同时,这个项目也是一个很好的学习平台,可以帮助开发者提升在Web开发和数据库管理...

    分页struts2+jsp+oracle10G

    在这个项目中,Oracle 10g将作为数据存储,开发者可能使用SQL查询语句配合Oracle的ROWNUM伪列来实现分页。ROWNUM在查询时会为每一行记录分配一个唯一的数字,通过限制查询的ROWNUM范围,可以实现分页效果。 项目的...

    Oracle&JSP分页和Oracle分页

    JSP可以通过Servlet或者JDBC来连接Oracle数据库,执行上述的SQL语句。首先,你需要在JSP页面中创建一个表单,用户可以通过这个表单选择页码。然后,表单提交到Servlet,Servlet处理请求,执行分页查询,并将结果传递...

    jsp+oracle短消息系统源码

    开发人员可能创建了如用户表、消息表等数据库结构,并使用SQL语句进行数据的增删改查操作。此外,为了连接JSP与Oracle,可能使用了JDBC(Java Database Connectivity)技术,编写了数据访问对象(DAO)或者使用ORM...

    初学者写留言本,带分页的java+servlet+oracle!

    通过JDBC,我们可以执行SQL语句,插入、更新和查询数据。 - **CRUD操作**:创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete),是数据库操作的基本动作。在留言本中,我们需要实现这些操作来管理留言。 3...

Global site tag (gtag.js) - Google Analytics