oracle存储过程实现JAVA调用的分页
来源:互联网 发布:2011网络春晚 翻唱传奇 编辑:程序博客网 时间:2024/05/16 02:18
1。先建立包中的游标
CREATE OR REPLACE Package testpackage As
Type test_cursor Is Ref Cursor;
CREATE OR REPLACE Package testpackage As
Type test_cursor Is Ref Cursor;
End testpackage;
2。实现存储过程代码
CREATE OR REPLACE Procedure fenye(
tableName In Varchar2,
Pagesize In Number,
pageNow In Number,
myrows Out Number,
myPageCount Out Number,
p_cursor Out testpackage.test_cursor
)Is
v_sql Varchar2(1000);
v_begin Number:=(pageNow-1)*Pagesize+1;
v_end Number:=pageNow*Pagesize;
Begin
v_sql:='select * from (select t1.*,rownum rn from (select * from '||tableName||') t1 where rownum<'||v_end||') where rn>='||v_begin||'';
CREATE OR REPLACE Procedure fenye(
tableName In Varchar2,
Pagesize In Number,
pageNow In Number,
myrows Out Number,
myPageCount Out Number,
p_cursor Out testpackage.test_cursor
)Is
v_sql Varchar2(1000);
v_begin Number:=(pageNow-1)*Pagesize+1;
v_end Number:=pageNow*Pagesize;
Begin
v_sql:='select * from (select t1.*,rownum rn from (select * from '||tableName||') t1 where rownum<'||v_end||') where rn>='||v_begin||'';
Open p_cursor For v_sql;
v_sql:='select count(*) from '||tableName;
Execute Immediate v_sql Into myrows;
If Mod(myrows,Pagesize)=0 Then
myPageCount:=myrows/Pagesize;
Else
myPageCount:=myrows/Pagesize+1;
End If;
--Close p_cursor;
End;
3。在JAVA程序中获取返回列表的结果集
package com.nyl.ptest;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Types;
public class FenyeTest {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn =DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.07:1521:chenjian","iptv_zj","iptv");
CallableStatement cs=conn.prepareCall("{call fenye(?,?,?,?,?,?)}");
cs.setString(1, "emp");
cs.setInt(2, 5);
cs.setInt(3, 1);
cs.registerOutParameter(4, Types.INTEGER);
cs.registerOutParameter(5, Types.INTEGER);
cs.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
int allpages=cs.getInt(4);
int pagenum=cs.getInt(5);
System.out.println("allpages:\t"+allpages+"pagenum:\t"+pagenum);
ResultSet rs=(ResultSet)cs.getObject(6);
while(rs.next()){
System.out.println("empno:\t"+rs.getInt(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
- oracle存储过程实现JAVA调用的分页
- Java调用Oracle的分页存储过程
- oracle实现存储过程的分页并用java代码调用存储过程
- java调用Oracle分页存储过程
- Java调用Oracle分页存储过程
- Java调用Oracle数据库的分页存储过程
- Oracle分页存储过程及java的具体调用方法
- java调用oracle数据库的分页存储过程
- JAVA调用MYSQL存储过程实现分页
- JAVA调用存储过程实现分页技术。。
- java调用存储过程实现分页功能
- oralce用存储过程实现分页 以及 用java调用这个存储过程的代码
- oracle实现分页的存储过程
- oracle的存储过程实现数据分页
- pl/sql 编写 Oracle分页的存储过程 Java调用该过程
- java下实现调用oracle的存储过程和函数
- JAVA调用Oracle存储过程的实现方法
- java下实现调用oracle的存储过程和函数
- 解决 java.lang.IllegalThreadStateException: Thread already started. 错误
- 元数据
- linux 手动挂载U盘..
- OLAP与数据挖掘的区别
- 只是需要你的钱在非常时刻
- oracle存储过程实现JAVA调用的分页
- ural 1016 Cube on the Walk 状态压缩最短路
- 联合体取值
- 托管代码和非托管代码
- ASP.NET路由系统实现原理:HttpHandler的动态映射
- zz - reprint with rework Definining resources at the theme level
- 应将是寻找企业能够平稳运行
- Linux下常用cvs命令整理
- MySQL索引类型一览 让MySQL高效运行起来