- 浏览: 353411 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (73)
- Spring (4)
- Oracle (9)
- MySql (7)
- ibatis (2)
- Java (19)
- JavaScript (6)
- JQuery (0)
- MyEclipse (7)
- Linux (4)
- log4j (1)
- Jetty (3)
- SVN (4)
- JIRA (1)
- Spring JPA (0)
- Myeclipse8.5 集成 CheckStyle (1)
- weservice (0)
- Thread (0)
- Oracle Hibernate (1)
- Hibernate (1)
- 计算机组成原理 (1)
- memcached (0)
- Redis Memcached (1)
- Java RMI (1)
- 经验 (1)
- MyEclipse Maven (1)
- Git (1)
- MongoDB (1)
- velocity framemarker (1)
- Java Idea (0)
- Idea (1)
最新评论
-
Mr.lucky:
...
c3p0数据库连接池死锁问题
1.Oralce的分页查询
分页查询:可以简化表复杂度,让一张很大的表,分成很多块,不要一次性全部显示成一整块;方便阅览
可以将下列语句当成一个模版使用select * from (select t1.*,rownum rn from emp t1 where rownum < 8) where rn > 3;
定义一个包,包里面有游标变量类型:(记住游标变量是不能在包中或包体中声明的比如 mycursor sys_refcursor这是不允许的)
接着写存储过程,来实现分页的业务逻辑
下面定义了六个变量, 三个输入参数(表名,第几页,一页显示几行数据),三个输出变量(表中数据总共的行数,表总共分了几页,游标变量(用来指明你需要查询的记录)).
- --pageCount 显示第几页
- --pageSize 一页显示的数据
- create or replace procedure emp_pro(tableName varchar2,pageCount number,pageSize number,
- allSize out number,allPage out number,mycursor out mypage.cursor_emp)
- is
- Sql_s varchar2(1000);
- Sql_count varchar2(1000);
- startSize number:=pageCount*pageSize-pageSize+1;
- endSize number:=pageCount*pageSize;
- begin
- Sql_s:='select * from
- (select t1.*,rownum rn from '||tableName||' t1 where rownum <= '||endSize||') where rn >= '||startSize;
- open mycursor for Sql_s;
- Sql_count:='select count(*) from emp';
- execute immediate Sql_count into allSize;
- if mod(allSize,pageSize)=0 then
- allPage:=allSize/pageSize;
- else
- allPage:=allSize/pageSize+1;
- end if;
- end;
我们来分析下面的语句
Sql_s:='select * from(select t1.*,rownum rn from '||tableName||' t1 where rownum <= '||endSize||') where rn >= '||startSize; open mycursor for Sql_s;
其实在PL/SQL编程中,可以把你需要写的SQL语句给一个字符变量,当执行存储过程的时候,oracle自动会辨认出来,
execute immediate SQL语句 into 变量
这一句的意思是:立即执行给定的SQL语句,把返回的结果给变量
JAVA调用存储过程:
- try
- {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:Class","scott","admin");
- CallableStatement call = con.prepareCall("{call emp_pro(?,?,?,?,?,?)}");
- call.setString(1, "EMP");
- call.setInt(2, 5);
- call.setInt(3, 4);
- //注册属性值
- call.registerOutParameter(4, OracleTypes.INTEGER);
- call.registerOutParameter(5, OracleTypes.INTEGER);
- call.registerOutParameter(6, OracleTypes.CURSOR);
- call.execute();
- int ALLSIZE = call.getInt(4);
- int ALLPAGE = call.getInt(5);
- System.out.println("记录数: "+ALLSIZE);
- System.out.println("总页数: "+ALLPAGE);
- ResultSet rs = (ResultSet)call.getObject(6);
- while(rs.next())
- {
- System.out.println("EMPNO="+rs.getInt(1)+" "+"ENAME="+rs.getString(2)+
- " "+"SAL="+rs.getInt(6));
- }
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
转自:http://aazham.iteye.com/blog/1167341
发表评论
-
Idea 阿里代码规约插件安装
2019-11-27 18:44 393Idea 阿里代码规约插件安装 插件介绍 该插件由 ... -
druid出现(*)druid property for user to setup解决办法
2017-04-07 10:06 3748引言: druid出现(*)druid prope ... -
日期转为昨天,今天,明天。。
2016-06-07 15:29 1010/** * 将时间 换为人性化的时间 ... -
java服务器端接收json格式传递的参数
2016-03-17 13:09 23171,传递参数的两种访书,第一是key-value形式,对于 ... -
利用zookeeper统计管理配置文件
2015-11-30 13:29 851创建密码hash值,并设置节点密码: 创建版本 ... -
Socket io聊天室模拟
2015-11-19 23:21 927Server package com.bobo.org.m ... -
SimpleDateFormat和FastDateFormat的效率测试,FastDateFormatr优于SimpleDateFormat
2015-11-13 10:29 2728需要引入commons-lang包 ... -
PowerDesigner逆向工程导入MYSQL数据库总结 .
2015-03-10 11:44 795PowerDesigner逆向工程导入MYSQL数据库总结 ... -
java类的初始化顺序
2014-04-01 21:51 472/** * java类的初始化顺序 * @au ... -
Web缓存的作用与类型
2014-04-01 20:03 902什么是Web缓存 Web缓存是指一个Web资源(如html ... -
myeclipse里使用fat jar生成可执行jar
2014-02-26 19:29 837myeclipse里使用fat jar生成可执行jar ... -
String
2014-02-11 21:13 672今天有个小弟问我关于String 当时有好几个回答,有人说 ... -
jsp中取得服务器时间并动态显示
2014-02-10 13:45 924jsp中取得服务器时间并动态显示 <% ... -
批量更新数据库
2013-12-25 14:08 0需求做到快完了,今天突然发现,频繁的更新数据库,导致数据库 ... -
Servlet_jdbc_mysql_分页示例系统
2013-12-24 17:17 770**************使用************** ... -
JAVA排序汇总
2013-12-01 18:43 766package com.bobo.paixu; im ... -
Java set种类其作用
2013-11-20 18:56 0Java set种类其作用 内存泄露分析定位 -
oracle表分区详解(转)
2013-02-05 17:58 847此文从以下几个方面来 ... -
c3p0数据库连接池死锁问题
2012-12-26 14:33 32206项目进行压力测试的时候,运行大概1小时候,后台抛出以下异常: ... -
javascript传递中文参数值时乱码问题的解决
2012-10-18 11:15 1087如果您确定不论是您的JSP页面还是您的Servlet都已 ...
相关推荐
### Oracle分页查询详解 #### 一、分页查询的重要性 在数据库操作中,分页查询是一项非常重要的技术。尤其当处理大量数据时,一次性获取所有数据不仅会消耗大量的网络带宽,还可能导致前端页面加载缓慢,用户体验...
### Oracle 分页查询并返回总记录数据存储过程 在数据库应用开发中,为了提高用户体验以及减少服务器负担,分页查询成为了一种常见的技术手段。Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种...
根据所提供的信息,我们可以提炼出以下关于“ORACLE分页查询效率”的相关知识点: ### 一、Oracle中的分页查询 #### 1.1 分页查询的重要性 - **背景介绍**:在实际应用中,数据库查询结果往往非常庞大,一次性加载...
Oracle 分页查询优化与排序解决方案 本文主要解决 Oracle 分页查询中排序与效率问题,通过实践和分析,提供了两种解决方案,并对比了两种方法的优缺点。 知识点 1: Oracle 分页查询的基本概念 Oracle 分页查询是...
msql和oracle分页查询语句笔记
Oracle 分页查询详解 Oracle 分页查询是指从大型数据表中提取指定范围的记录,以便提高查询效率和减少数据传输量。常用的 Oracle 分页查询方法有三种:使用 ROWNUM、使用 ROW_NUMBER() 和使用子查询。 第一种方法...
### 解决Oracle分页查询中排序与效率问题 在Oracle数据库中进行分页查询时,经常会出现性能瓶颈,尤其是在处理大数据量的情况下。本篇文章将详细探讨如何优化Oracle分页查询中的排序与效率问题。 #### 一、理解...
Oracle 的分页查询 在 Oracle 中,分页查询是非常常见的需求,但是在使用查询条件时又不能使用大于号(>)。本文将讲解 Oracle 中的分页查询,包括使用 ROWNUM 伪列和 ORDER BY 子句对查询结果进行排序和分页。 一...
首先,理解Oracle分页查询的基本结构。通常,Oracle的分页查询采用嵌套查询的方式实现。以下是一个典型的分页查询模板: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A ...
Oracle数据库在处理大数据量查询时,分页查询是一种常见的优化策略,目的是限制返回结果集的大小,加快查询速度,提供更好的用户体验。本文将详细探讨Oracle的分页查询语句及其存储过程。 首先,Oracle的分页查询...
2. **构造SQL查询语句**:Oracle数据库支持使用`ROWNUM`进行分页查询。基本的SQL模板为: ```sql SELECT * FROM (SELECT t.*, ROWNUM rnum FROM (YOUR_SELECT_QUERY) t WHERE ROWNUM ) WHERE rnum >= :startRow `...
分页查询是Oracle数据库比较重要的一个知识点!希望这个对你有参照作用。
### Oracle分页(LIMIT方式的运用) 在数据库查询操作中,分页是非常常见的需求之一,尤其是在数据量较大的情况下,为了提高用户体验以及减轻服务器压力,...希望本文能为你理解和掌握Oracle分页查询提供一定的帮助。
本文将详细讲解如何在Oracle数据库中进行分页查询,并结合JSP实现前端展示。 首先,了解Oracle数据库中的分页。Oracle提供了一种名为ROWNUM的伪列,它会为每一行返回一个唯一的数字,从1开始递增。通过ROWNUM,我们...
本篇文章将重点讨论如何使用Java JDBC和Oracle数据库实现面向对象的分页查询。 首先,我们需要了解面向对象编程的基本概念。面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,强调用对象来表示...
首先,我们要了解Oracle中的基本分页查询方式。在Oracle 9i及更高版本中,可以使用ROWNUM伪列进行分页。ROWNUM是在查询结果集生成时被赋予的数值,表示行的顺序。例如,如果我们想要获取前10条记录,可以使用以下...
在Oracle分页中,Hibernate通过HQL(Hibernate Query Language)或SQL来执行查询,并支持Criteria、Query和Session的Criteria API等方式实现分页。通常,我们会通过设置`setFirstResult`和`setMaxResults`方法来指定...