我是一个存储过程初学者,希望大家帮忙
首先,需要提供一个可以返回结果集的存储过程,比如select id,name from tableA
然后,如何在java里用ArrayList来得到这个结果集。谢谢了,希望能给出详细代码,不胜感激

解决方案 »

  1.   

    利用CallableStatement
    来实现
    我是这样实现的:
     Connection con = null;
            CallableStatement  proc = null ;
            ResultSet rs = null;       
        Vector vt = new Vector();
           String sql=""; 
            try {
             sql = "{call pkg_test.TEST_GET('','',?)} ";
             System.out.println("test1");
             proc=con.prepareCall(sql);  
             System.out.println("test2");   
             proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);   
             proc.execute();   
             System.out.println("test3");
             rs=(ResultSet)proc.getObject(1);  
             System.out.println("test4");         
            while(rs.next()){
             System.out.println(rs.getString(1));                      
                }
              rs.close();
    proc.close();
      

  2.   

    我使用的是mssql2005,能给一个返回结果集的存储过程么?返回结果集的存储过程我也不知道怎么写
      

  3.   

    上面的是你的存储过程是一个包的形式,
    也可以是一个方法或者一个过程...就是改改
    sql = "{call pkg_test.TEST_GET('','',?)} ";
    如果是方法
    那么就写 select funName from tableName不知道你用什么数据库
    我用的Oracle
    tableName 写的是 Dual
    不知你用什么数据库
    可以找一下相对的默认的表
      

  4.   

    proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);    这句必须有么?表示什么意思
      

  5.   

    .........
    呵呵
    哪你还没有写出存储过程么?
    我没有写过mssql2005的存储过程
    但是写给Oracle的
    就是用游标来查找贝.....
      

  6.   

    我使用的是mssql2005,能针对mssql2005再给个详细的么?谢谢了
      

  7.   

    proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);    这句必须有么?表示什么意思这是序列化游标的语句如果写成包的形式
    必须的有的...
      

  8.   

    呵呵
    不好意思
    如果是
    mssql2005 
    我还真无能为力了
    不过我估计都差不多吧...