部分主要代码如下,执行报错:Exception in thread "main" java.lang.ClassCastException: [B 
at JDBCHelloWorld5.main(JDBCHelloWorld5.java:52)
请大侠帮忙看看问题出在哪(存储过程只有一个输入参数,执行存储过程是select出一些记录)CallableStatement proc = conn.prepareCall("{ ?=call proc_GetUserRe(?) }");    
  
proc.setString("UserCode", "Wallace.He");    
proc.registerOutParameter(1,java.sql.Types.OTHER);
  
proc.execute();    
ResultSet rs= (ResultSet) proc.getObject(1);while (rs.next()) {    
String name = rs.getString(1);    
System.out.print(" name was " + name );       

解决方案 »

  1.   

    存储过程的返回值不是结果集转换成ResultSet时就会出错,是什么数据库的存储过程
    proc.registerOutParameter(1,java.sql.Types.OTHER);ResultSet rs= (ResultSet) proc.getObject(1);
      

  2.   

    http://topic.csdn.net/u/20100514/16/18c860f0-0bbb-44df-bbed-35b798ae95a4.html
      

  3.   

    java.lang.ClassCastException  JDBCHelloWorld5.java:52
      

  4.   

    难道存储过程就是用来select的吗?  lz有必要反思下存储过程、函数、select等等的用途是干啥了
      

  5.   

    ResultSet rs= (ResultSet) proc.getObject(1)应该是这句。转型错误
      

  6.   

    boolean bl = proc.execute();//如果返回true,表示第一条sql语句带结果集
    rs = proc.getResultSet();
      

  7.   

    DEBUG一下,看看是哪行出的错
      

  8.   

    谢谢大家。
    数据库我用的sqlserver2005,
    我将这句ResultSet rs= (ResultSet) proc.getObject(1);
    改成ResultSet rs = proc.getResultSet();就能执行成功。
    我看有好多人都用的是getObject,不知2者的具体区别和各自的用途是啥喃?