读书人

java如何得到存储过程的返回值

发布时间: 2012-01-22 22:38:43 作者: rapoo

java怎么得到存储过程的返回值?
use test
go
create procedure sp_compute
as
select goodsQuantity,memberId from goods where goodsQuantity>10 order by memberId compute sum(goodsQuantity) by memberId
go
以上是我的存储过程,我怎么读取它的值?
该存储过程执行结果如图:http://sfq1984.cn/images/123.JPG

[解决办法]

[解决办法]
这个应该用到 游标 吧。
[解决办法]
看API,connection类的prepareCall()
[解决办法]
没有简单的demo例子你看下下面这个吧,可以考虑用这个或者把代码扒出来。

http://blog.csdn.net/sunyujia/archive/2008/05/18/2456325.aspx
[解决办法]
你写好存储过程,在java里调用阿
[解决办法]
Connection con;
CallableStatement cs;
ResultSet rs;


Arraylist list = new ArrayList();
String sql= {call sp_compute (?,?,?)};

建立连接
c处理sql语句
.......
执行用rs接受
whlie(rs.Next()){

实例化一个javabean对象
list.add(....);

}

值保存在Arraylist对象中


我刚学jsp,我机器上没有编译器,写得不好,还可能有些错误....请原料
[解决办法]
没用框架的话.就差不多是楼上那样了,用hibernate的话用createSQLquery,session.createSQLQuery("Call 存储工程名(?,?)")返回list
[解决办法]
写一个包,申明一个游标A,包体里的存储过程用游标A打开select goodsQuantity,memberId from goods where goodsQuantity>10 order by memberId compute sum(goodsQuantity) by memberId ,返回这个游标A。
或者,你把这在存储过程里直接用游标循环,把所有内容拼成一个字符串,一条记录中的字段用“,”隔开,记录之间用“+”隔开这种形式,varchar2不够可以用Long返回,到java里去解析这个Long的内容。
[解决办法]
CallableStatement
[解决办法]
exex 变量=返回值,变量=返回值 sp_compute
上面是SQL

如果在java里面就用到 参数占位符

参数... 网上有很多资料

读书人网 >Java Web开发

热点推荐