挠痒痒的专栏

彪悍的人生不需要解释

用户操作
[即时聊天] [发私信] [加为好友]
蔡晖ID:chnic
1154次访问,排名2万外好友3人,关注者7
彪悍的人生不需要解释
chnic的文章
原创 8 篇
翻译 0 篇
转载 0 篇
评论 3 篇
挠痒痒的公告
写Blog主要为了沉淀一下自己的所学。这里的博文都是从我的另一博客copy来的。http://chnic.javaeye.com
最近评论
chnic:不好意思,源代码blog上面都有的。
你可以自己copy. 我基本上是在一份源代码上做的所有东西。
wsdd 还有一些相关文件早就改的面目全非了。
你照着我的步骤一步一步来 不会出错的。
singlesword2007:写的不错!深入而且易懂,期待下一篇!
allisgone:可以发一个完整的例子给我吗?发到邮箱里,谢了
文章分类
收藏
    相册
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Oracle返回结果集用JDBC读取收藏

    新一篇: 在Tomcat5.0.28 和5.5.15 配置JNDI数据源 | 旧一篇: 利用AXIS开发Webservice(三) —— 如何传递JavaBean和你的对象

    废话不多说 进入正题: Oracle返回结果集然后用JDBC调用。 
    方法有两种,以Oracle scott用户下的DEPT表为例。 

    Step.1 程序包
    create or replace package Test_cursor as    
      type my_cursor 
    is ref cursor;    
      
    procedure my_procedure(para out my_cursor);    
    end Test_cursor;    
      
    create or replace package body Test_cursor as    
      
    procedure my_procedure(para out my_cursor) is    
      
    begin    
        
    open para for    
          
    select d.deptno, d.dname from dept d;    
      
    end my_procedure;    
    end Test_cursor;    

    Step.2 程序包+存储过程
    create or replace package types as    
      type cursorType 
    is ref cursor;    
    end;    
                  
    create or replace procedure getemps(p_cursor out types.cursorType) as    
    begin    
      
    open p_cursor for    
        
    select d.deptno, d.dname from dept d;    
    end;  

    以此类推,用程序包+函数同样可以。 

    下面是测试类:
    package com.chnic.procedure;    
        
    import java.sql.CallableStatement;    
    import java.sql.Connection;    
    import java.sql.DriverManager;    
    import java.sql.ResultSet;    
    import java.sql.SQLException;    
       
    import oracle.jdbc.driver.OracleTypes;    
      
    public class TestProcedure {    
      
        
    private String path = "jdbc:oracle:thin:@localhost:1521:Oracle";    
        
    private String user = "Scott";    
        
    private String password = "tiger";    
        
    private Connection conn;    
        
    public TestProcedure(){    
            
    try {    
                Class.forName(
    "oracle.jdbc.driver.OracleDriver");    
                conn 
    = DriverManager.getConnection(path, user, password);    
            }
     catch (ClassNotFoundException e) {    
                e.printStackTrace();    
            }
     catch (SQLException e) {    
                e.printStackTrace();    
            }
        
        }
        
     
        
    public void readFromProcedure(){    
            
    try {    
    //            CallableStatement call = conn.prepareCall("call getemps(?)");   //测试方法 1    
                CallableStatement call = conn.prepareCall("call TEST_CURSOR.MY_PROCEDURE(?)"); //测试方法2    
                call.registerOutParameter(1, OracleTypes.CURSOR);    
                call.execute();    
                ResultSet rs 
    = (ResultSet)call.getObject(1);    
                
    while(rs.next()){    
                    System.out.println(rs.getString(
    1+ " --- " + rs.getString(2));    
                }
        
                
    this.releaseConnection(conn);    
            }
     catch (SQLException e) {    
                e.printStackTrace();    
            }
        
        }
        
      
        
    public void releaseConnection(Connection conn){    
            
    try {    
                conn.close();    
            }
     catch (SQLException e) {    
                e.printStackTrace();    
            }
        
        }
        
        
    public static void main(String[] args){    
            TestProcedure tp 
    = new TestProcedure();    
            tp.readFromProcedure();    
        }
        
    }
     

    发表于 @ 2008年03月14日 00:25:00|评论(loading...)|编辑

    新一篇: 在Tomcat5.0.28 和5.5.15 配置JNDI数据源 | 旧一篇: 利用AXIS开发Webservice(三) —— 如何传递JavaBean和你的对象

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 挠痒痒