首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2012-01-22 
java怎么得到存储过程的返回值?use testgocreate procedure sp_computeasselect goodsQuantity,memberId f

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里面就用到 参数占位符

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

热点排行