ResultSet会不会对数据做什么??

方元之外 2017-03-20 04:45:01
大神们,我从数据库得到ResultSet,直接返回回去就可以用,
但是测试数据遍历一下,再返回就为空了,像下面这样返回回去就为空了;

ResultSet rs = preparedStatement.executeQuery();

while(rs.next()){


}

return rs;
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
方元之外 2017-03-20
  • 打赏
  • 举报
回复
引用 2 楼 zs808 的回复:
另外ResultSet只是一个抽象的接口,可能不同的数据库客户端有不同的实现,就好比MySql客户端的实现就有三种:Cursor,Static,Dynamic。所以到最后ResultSet到底为不为“空”,我们是不知道的,但是,我们知道的是“它没有下条数据了”。 可以调用first()方法来重置数据指针到初始位置。
谢谢
方元之外 2017-03-20
  • 打赏
  • 举报
回复
谢谢1楼的答案,试了一下,就是这个原因
zs808 2017-03-20
  • 打赏
  • 举报
回复
另外ResultSet只是一个抽象的接口,可能不同的数据库客户端有不同的实现,就好比MySql客户端的实现就有三种:Cursor,Static,Dynamic。所以到最后ResultSet到底为不为“空”,我们是不知道的,但是,我们知道的是“它没有下条数据了”。 可以调用first()方法来重置数据指针到初始位置。
zs808 2017-03-20
  • 打赏
  • 举报
回复
rs与流类似,其本身不会对数据做什么操作。但是,在执行一次next()之后,会将其内部的数据指针+1,然后再次调用next就是获取下条数据了。 你通过while(rs.next())这句话,就会把当前的数据指针指向最后一条数据,自然而然,你再次调用next就没数据了,Result就“为空”了。

62,621

社区成员

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

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