在oracle里面写一个存储过程:获得一个表的所有信息,在java里面调用这个存储过程把这个表的信息给显示出来怎么做呀,向高手们请教一下,谢谢!!

解决方案 »

  1.   

    直接调用即可,这个是JDBC标准的
    public static void executeSprocNoParams(Connection con) { 
       try { 
          Statement stmt = con.createStatement(); 
          ResultSet rs = stmt.executeQuery("{call dbo.GetContactFormalNames}");       while (rs.next()) { 
             System.out.println(rs.getString("FormalName")); 
          } 
          rs.close(); 
          stmt.close(); 
       } 
       catch (Exception e) { 
          e.printStackTrace(); 
       } 
    }如果需要传递参数,请参考这个(虽然是SQLServer的,单对于Oracle适用)
    public static void executeSprocInParams(Connection con) { 
       try { 
          PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}"); 
          pstmt.setInt(1, 50); 
          ResultSet rs = pstmt.executeQuery(); 
          while (rs.next()) { 
             System.out.println("EMPLOYEE:"); 
             System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName")); 
             System.out.println("MANAGER:"); 
             System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName")); 
             System.out.println(); 
          } 
          rs.close(); 
          pstmt.close(); 
       } 
       catch (Exception e) { 
          e.printStackTrace(); 
        } 
    } FROM:http://www.java2000.net/viewthread.jsp?tid=511
      

  2.   

    错了!调用存储过程都是用CallableStatement的,怎么能够使用PrepareStatement??而Oracle又比较特别,要使用
    CallableStatement才能够调用Oracle的存储过程