- 浏览: 351053 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 350Idea 阿里代码规约插件安装 插件介绍 该插件由 ... -
druid出现(*)druid property for user to setup解决办法
2017-04-07 10:06 3705引言: druid出现(*)druid prope ... -
日期转为昨天,今天,明天。。
2016-06-07 15:29 976/** * 将时间 换为人性化的时间 ... -
java服务器端接收json格式传递的参数
2016-03-17 13:09 22811,传递参数的两种访书,第一是key-value形式,对于 ... -
利用zookeeper统计管理配置文件
2015-11-30 13:29 823创建密码hash值,并设置节点密码: 创建版本 ... -
Socket io聊天室模拟
2015-11-19 23:21 892Server package com.bobo.org.m ... -
SimpleDateFormat和FastDateFormat的效率测试,FastDateFormatr优于SimpleDateFormat
2015-11-13 10:29 2656需要引入commons-lang包 ... -
PowerDesigner逆向工程导入MYSQL数据库总结 .
2015-03-10 11:44 763PowerDesigner逆向工程导入MYSQL数据库总结 ... -
java类的初始化顺序
2014-04-01 21:51 446/** * java类的初始化顺序 * @au ... -
Web缓存的作用与类型
2014-04-01 20:03 870什么是Web缓存 Web缓存是指一个Web资源(如html ... -
myeclipse里使用fat jar生成可执行jar
2014-02-26 19:29 814myeclipse里使用fat jar生成可执行jar ... -
String
2014-02-11 21:13 645今天有个小弟问我关于String 当时有好几个回答,有人说 ... -
jsp中取得服务器时间并动态显示
2014-02-10 13:45 898jsp中取得服务器时间并动态显示 <% ... -
批量更新数据库
2013-12-25 14:08 0需求做到快完了,今天突然发现,频繁的更新数据库,导致数据库 ... -
Servlet_jdbc_mysql_分页示例系统
2013-12-24 17:17 739**************使用************** ... -
JAVA排序汇总
2013-12-01 18:43 738package com.bobo.paixu; im ... -
Java set种类其作用
2013-11-20 18:56 0Java set种类其作用 内存泄露分析定位 -
oracle表分区详解(转)
2013-02-05 17:58 813此文从以下几个方面来 ... -
c3p0数据库连接池死锁问题
2012-12-26 14:33 32162项目进行压力测试的时候,运行大概1小时候,后台抛出以下异常: ... -
javascript传递中文参数值时乱码问题的解决
2012-10-18 11:15 1061如果您确定不论是您的JSP页面还是您的Servlet都已 ...
相关推荐
Oracle分页查询Oracle分页查询Oracle分页查询Oracle分页查询
ORACLE分页查询效率
oracle分页查询语句sql
oracle分页查询并返回总记录数据的存储过程
解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题
msql和oracle分页查询语句笔记
Oracle的分页查询语句以及Oracle分页的存储过程
java实现oracle分页策略完整版,可当做参考类使用,有详细注释,适合初学者。
oracle分页查询常用方法 提供三种方法
Oracle分页查询(很不错的介绍) 保证不会让你失望
本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题。
分页查询是Oracle数据库比较重要的一个知识点!希望这个对你有参照作用。
使用数据库时有时我们会需要分页查询,但是在oracle中使用查询条件时又不可以使用大于号>。
Oracle 分页实例 带分页控件用法 Oracle 实现数据列表分页。
oracle分页存储过程,oracle分页存储过程
oracle&jsp简单实现分页,注意到Oracle包