麻烦问一下各位大哥大姐就是现在我在数据库里面些了一个存储过程
create or replace procedure pro_test(id_ in varchar2,
name_ out varchar2,
age_ out varchar2,
return_ out varchar2)is
begin
declare
rows_ number(9);
begin
select count(1) into rows_ from test where id= id_;
if row_ = 0 then
return_ := 'NO';
else
select name=name_ , age=age_ from test where id=id_;
end if;
end;
exception
when others then
rollback;
end pro_test;但是这个返回的结果是id name age
01 张三 20
01 李四 21
就是是说 一个id 有2条数据 我想问一下 这个我在java程序里面应该怎么去取 返回的这2条数据 当然也有可能一个id返回3条数据 4条数据 我就是想问一下 怎么去取这个结果集?
如果只有一条记录 这个我知道
Connection con=null;
CallableStatement cs=null;
cs = con.prepareCall("{call pro_test(?,?,?,?)}");
cs.registerOutParameter(4java.sql.Types.CHAR);
cs.registerOutParameter(3,java.sql.Types.CHAR);
cs.registerOutParameter(2java.sql.Types.CHAR);
cs.setString(1,id);
cs.execute();
String ret=cs.getString(2);
String ret=cs.getString(3);
好像是通过这样取值 一条记录的话 但是2条记录这个怎么取啊
麻烦说一下 谢谢
//然后遍历rs
List<实例对象> list=new ArrayList<实例对象>();
实例对象 obj=null;
while(rs.next()){
obj=new 实例对象();
obj.setId(rs.String(""));
。。
list.add(obj);
}
将查询的数据就添加到list中了。操作list就行了,。
你这个获取参数的时候 只是获取一条,你可以加一个循环进行遍历获取。
比如
while(rs.next){
获取的方法
}
就返回一个result,就去第一个result就是那个结果集了
CallableStatement cs=null;
cs = con.prepareCall("{call pro_test(?,?,?,?)}");
cs.registerOutParameter(4java.sql.Types.CHAR);
cs.registerOutParameter(3,java.sql.Types.CHAR);
cs.registerOutParameter(2java.sql.Types.CHAR);
cs.setString(1,id);
cs.execute();
String ret=cs.getString(2);
String ret=cs.getString(3);