`

Java调用PL/SQL分页存储过程的代码示例

阅读更多

    http://wzan315.blog.163.com/blog/static/371926362012224105040773/
本文我们主要介绍了Java调用PL/SQL分页存储过程的代码示例,通过这个示例让我们来了解一下Java调用存储过程实现分页的过程,希望能够对您有所帮助。

Java调用PL/SQL分页存储过程的代码示例是本文我们主要要介绍的内容,我们首先给出了PL/SQL分页的存储过程的代码,然后定义SQL语句和字符串,最后介绍了Java调用的代码,接下来就让我们一起来了解一下这部分内容吧。

PL/SQL分页存储过程:

    create or replace procedure fenye 
    (tableName in varchar2,  --表名 
    page_size in number,   --每页显示记录数 
    pageNow  in number, --当前页  
    myrows  out number, -- 总记录数 
    myPageCount out number, --总页数 
    my_cursor out my_new_pack.test_cursor --返回的结果集 
    )is   

定义SQL 语句和字符串:

    v_sql varchar2(1000); 
    v_begin number := (pageNow-1)*page_size+1; 
    v_end number := pageNow*page_size; 
    begin 
    v_sql :=  'select * from (select t1.*,rownum rn from (select * from '||tableName 
    ||')t1 where rownum<='||v_end||' )where rn>='||v_begin; 
    open my_cursor for v_sql; 
    v_sql :='select count(*) from '|| tableName; 
    execute immediate v_sql into myrows; 
    if mod(myrows,page_size) =0 then  
    myPageCount := myrows/page_size; 
    else myPageCount := myrows/page_size+1; 
    end if; 
    end;

JAVA调用代码:

    import java.sql.*; 
    public class test { 
    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Connection conn = null; 
    CallableStatement cs = null; 
    ResultSet rs =null; 
    try{ 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:kelvin111G2","system","MANAGER"); 
    cs = conn.prepareCall("{call fenye(?,?,?,?,?,?)}"); 
    cs.setString(1, "scott.emp"); 
    cs.setInt(2, 5); 
    cs.setInt(3, 2); 
    cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER); 
       cs.registerOutParameter(5,oracle.jdbc.OracleTypes.INTEGER); 
       cs.registerOutParameter(6,oracle.jdbc.OracleTypes.CURSOR); 
       cs.execute(); 
       System.out.println("总记录数为"+cs.getInt(4)); 
       System.out.println("总页数"+cs.getInt(5)); 
       rs = (ResultSet)cs.getObject(6); 
       while(rs.next()){ 
        System.out.println(rs.getInt(1)+"==="+rs.getString(2)+"==="+rs.getString(3)); 
       } 
       }catch(Exception e){ 
       e.printStackTrace(); 
      }finally{ 
        try { 
         rs.close(); 
         cs.close(); 
         conn.close(); 
        } catch (SQLException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
      }  
     } 
    } 

关于Java调用PL/SQL分页过程的代码示例就介绍到这里了,希望本次的介绍能够对您有所帮助。
分享到:
评论

相关推荐

    oracle Pl/sql编程经典入门

    1、简单程序 2、限定查询 3、多表查询 4、子查询 5、分页查询 6、单行函数 7、oracle对象操作 8、oracle类型练习 9、java中调用oracle 10、procedure经典练习

    oracle分页查询

    oracle分页查询,以及用java、asp.net调用存储过程的示例。 pl/sql测试包内带结果集的存储过程示例。

    收获不止SQL优化

    第1章 全局在胸——用工具对SQL整体优化 1 1.1 都有哪些性能工具 1 1.1.1 不同调优场景分析 2 1.1.2 不同场景对应工具 2 1.2 整体性能工具的要点 4 1.2.1 五大性能报告的获取 5 1.2.2 五大报告关注的要点 10 ...

    收获,不止SQL优化--抓住SQL的本质

    第1章 全局在胸——用工具对SQL整体优化 1 1.1 都有哪些性能工具 1 1.1.1 不同调优场景分析 2 1.1.2 不同场景对应工具 2 1.2 整体性能工具的要点 4 1.2.1 五大性能报表的获取 5 1.2.2 五大报表关注的要点 10 ...

    JDBC 3.0数据库开发与设计

    4.2 调用存储过程对象 4.2.1 CallableStatement对象的创建 4.2.2 IN、OUT及INOUT参数的使用 4.2.3 执行CallableStatement Object对象 4.2.4 CallableStatement对象使用实例 4.2.5 SQL Server存储过程编程经验...

    Java面试宝典2020修订版V1.0.1.doc

    19、用JDBC如何调用存储过程 69 20、JDBC中的PreparedStatement相比Statement的好处 71 21、写一个用jdbc连接实例。 71 22、ArrayList和Vector的区别? 73 23、List、Set和Map的区别? 74 24、Collection 和 ...

    asp.net知识库

    可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    产品安装过程中将会出现以上2个界面 9. 步骤8/8:完成安装  卸载Oracle 1. 在运行services.msc打开服务,停止Oracle的所有服务。 2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\...

    php网络开发完全手册

    16.3.2 存储过程的创建与调用 264 16.3.3 存储过程的参数 265 16.3.4 复合语句 267 16.3.5 变量 268 16.3.6 条件语句 269 16.3.7 循环语句 271 16.3.8 游标 273 16.3.9 存储过程的删除 275 16.4 触发器的设计 275 ...

    Java学习笔记-个人整理的

    {12.25}PL/SQL}{189}{section.12.25} {13}JDBC}{191}{chapter.13} {13.1}forName}{191}{section.13.1} {13.2}JDBC}{191}{section.13.2} {13.3}连接Oracle数据库及操作}{192}{section.13.3} {13.4}批处理模式}{...

    Oracle事例

    手工刷新快照,(调用DBMS_SNAPSHOT包中的refresh过程)DBMS_SNAPSHOT.refresh(snapshot_name,refresh_type); begin DBMS_SNAPSHOT.REFRESH(\'snap_to_html\',\'c\'); end; 对所有快照进行刷新 begin DBMS_...

    精髓Oralcle讲课笔记

    --(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接) 7、select ename||'afasjkj' from emp; --字符串的连接 8、select distinct deptno from emp; --消除deptno字段重复的值 9、...

Global site tag (gtag.js) - Google Analytics