jdbc与存储过程问题

bigben68 2007-11-27 05:04:11
想写一段程序,将执行某个存储过程返回的结果集存储到数组中,由于JDBC没有取得返回结果集个数的方法,所以想在存储过程中增加一个返回值返回结果集个数,存储过程大概如下
create procedure test
@RowCount int
as
select XXX,.... from anytable where situation;
select @RowCount = count(*) from anytable where situation
......
在java中
连接数据库,准备存储过程参数,执行存储过程后出现这样的问题:
希望先取得存储过程输出参数,再声明数组,然后遍历存储过程返回的结果,放在数组中
......
ResultSet rs = cStatement.getResult();
int rowCount = cStatement.getInt(1);
String [][] result;
result = new String[rowCount][colCount]
遍历返回结果集时报错:对象已关闭
先遍历后取存储格式输出参数程序顺利执行,但这样无法正确设置数组大小。
请教 我该如合实现我的想法


...全文
146 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2007-11-28
  • 打赏
  • 举报
回复
mark
sureyor 2007-11-28
  • 打赏
  • 举报
回复
java中比数组好用的数据库结构多啦,List,Hashmap都能很好的解决类似问题,干嘛非要绑死在数组上?
rabbitbug 2007-11-28
  • 打赏
  • 举报
回复
int rowCount = rs.getInt(1);
创建数组时还要判断一下rowCount和colCount是否为0
sharpyuce 2007-11-27
  • 打赏
  • 举报
回复

ResultSet rs = cStatement.getResult(); //?
int rowCount = cStatement.getInt(1); //?
String [][] result;
result = new String[rowCount][colCount]

ResultSet rs 好象不是这样得到的吧;
String sql = "查询语句";
Statement sta = con.createStatement();
ResultSet rs = sta.executeQuery(sql);
int rowCount = rs.getInt(1);
String[][] result = new String[rowCount][colCount];
//这里的colCount不应该指定吧,有的有记录的有的没有
String[][] result = new String[rowCount][]; 这样声明好些.
其实用javaBean写一个类来封装一条记录是最好的方法

这样才能得到吧.
neptune0229 2007-11-27
  • 打赏
  • 举报
回复
int rowCount = cStatement.getInt(1);

int rowCount = rs.getInt(1);

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧