急!!!关闭OracleCachedRowSet的问题。

solobird 2006-05-10 09:04:49
从connection里面得到一个preparestatement,然后执行一次query得到resultset,然后生成一个OracleCachedRowSet,从resultset里面populate数据。然后依次关闭resultset,和statement.

但是发现一个非常奇怪的问题。当我使用完OracleCachedRowSet,调用他的Close方法。居然connection也连带关闭。导致我之后想继续执行其他的SQL文时报告异常“连接已经关闭”。


大虾帮忙指点一下。这个OracleCachedRowSet到底用不用关闭,怎么关闭?不关闭,会不会引起内存占用不断升高或者Cursor沾满的危险?
...全文
315 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
niat97222 2006-07-14
  • 打赏
  • 举报
回复
问题好像是OracleCachedRowSet的关闭将会连带将Connection也关闭把,就算是用连接池,他同样也会将连接池中的Connection关闭阿,这样一来,连接池也可能会被这个东东弄死去。因为到最后,连接池中的所有Connection都会被OracleCachedRowSet关闭掉。
zclgod 2006-05-12
  • 打赏
  • 举报
回复
帮顶
killme2008 2006-05-12
  • 打赏
  • 举报
回复
我没这个问题啊,因为我每次查询都是新开一个connection的,创建完OracleCachedRowSet就关掉...
solobird 2006-05-12
  • 打赏
  • 举报
回复
你那里发现这个问题了吗?就是每次关闭OracleCachedRowSet,connection也关闭?
sole_lodestar 2006-05-11
  • 打赏
  • 举报
回复
关注
killme2008 2006-05-11
  • 打赏
  • 举报
回复
那只好如此了,把所有的OracleCachedRowSet的关闭放到最后再进行
之前你可以先关闭ResultSet,对OracleCachedRowSet没影响
solobird 2006-05-11
  • 打赏
  • 举报
回复
说来话长,某种原因,不能使用连接池。
killme2008 2006-05-11
  • 打赏
  • 举报
回复
connection作为全局变量?为何不用数据源连接池?
我做的项目中也是使用了OracleCachedRowSet,一直都是每次调用新开一个connection,性能上并没有大问题
solobird 2006-05-11
  • 打赏
  • 举报
回复
connection是全局的。会有很多个函数用到这个变量。每个函数里面会执行某种SQL。然后本地生成一个OracleCachedRowSet,然后使用里面的数据。任何一个函数里面调用了OracleCachedRowSet 的Close方法,会导致connection关闭。WHY?
killme2008 2006-05-11
  • 打赏
  • 举报
回复
需要关闭,你为何不在执行完所有的SQL语句之后再关闭?
solobird 2006-05-11
  • 打赏
  • 举报
回复
up

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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