java 调用存储过程 5

部分主要代码如下,执行报错:Exceptioninthread"main"java.lang.ClassCastException:[BatJDBCHelloWorld5... 部分主要代码如下,执行报错: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 + " years old.");
}
数据库我用的sqlserver2005,我将ResultSet rs= (ResultSet) proc.getObject(1);改成ResultSet rs = proc.getResultSet();就能执行成功。不知2者的区别和具体的使用情况是啥呢
展开
 我来答
快乐的玉米肠
2010-07-20 · TA获得超过127个赞
知道答主
回答量:74
采纳率:82%
帮助的人:39.3万
展开全部
Exception in thread "main" java.lang.ClassCastException: [B
at JDBCHelloWorld5.main(JDBCHelloWorld5.java:52)
意思是:类型强制转换错误,本来是一个int类型的值,你用一个集合装载,就会抛出异常(举例)
代码52行,估计ResultSet rs= (ResultSet) proc.getObject(1);
是这一行有问题
引用:"执行存储过程是select出一些记录",说明是一个集合.这个集合,
是个map类型的

你用的是什么数据库?

我将ResultSet rs= (ResultSet) proc.getObject(1);改成ResultSet rs = proc.getResultSet();就能执行成功

proc.getObject(1):是获得具体的类型对象,是具体的类型哦
proc.getResultSet():是获得输出的结果,不明确是什么类型.可以说底层封装的是map对象.这个map对象具体放了什么,还是因你查询sql而定,
在oracle,可能是某个实体,在mysql.sqlserver 可能就不是了.
Jseven_jy
2010-07-15 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1115万
展开全部
类型转换错误。。
应该是ResultSet rs= (ResultSet) proc.getObject(1);这一行

proc.getObject(1)这个并不是ResultSet类型的。。

你把他强制转换成ResultSet运行的时候就会报这个异常的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uj518390
2010-07-15 · TA获得超过958个赞
知道小有建树答主
回答量:2099
采纳率:0%
帮助的人:1364万
展开全部
调用存储过程得直接取得Connetion对象,用到CallableStatement这个对象,Connetion中有个方法: CallableStatement prepareCall(String sql) 。 其中的sql就是存储过程调用时字符串形式: {call <procedure-name>...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuzhiyong5161
2010-07-15
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
的确就是ResultSet res =(ResultSet)proc.getObject(1);这块的错误
这块你使用了强制类型转换。因此报了错误。。不能强制转换为ResultSet
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式