请问通过ResultSet得到PreparedStatement对像,然后关闭PreparedStatement可行吗?

山城忙碌人 2012-07-22 06:28:15
代码如下:
void test(ResultSet rs){
if (rs != null) {
PreparedStatement ps = null;
try {
ps = (PreparedStatement) rs.getStatement();
rs.close();
} catch (Throwable e) {
rs = null;
e.printStackTrace();
}finally{
if (ps != null) {
try {
ps.close();
} catch (Throwable e) {
ps = null;
e.printStackTrace();
}
}
}
}

请问通过这种方式关闭PreparedStatement 对像有问题吗?我在本地开了50个线程,每三秒操作一次测试表(表里数据目前只有两条),还没遇到任何问题。欢迎大家讨论,共同进步!
...全文
113 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
brightyq 2012-07-22
  • 打赏
  • 举报
回复
干啥哪?散分哪?
山城忙碌人 2012-07-22
  • 打赏
  • 举报
回复
ldh911

我一直使用的是PreparedStatement正常情况不会转换失败。Connection是直接关闭的。
MiceRice 2012-07-22
  • 打赏
  • 举报
回复
我X,这么多重复发帖。。。刚好我补充点信息:

没啥问题,有一种风险就是之前用的不是PreparedStatement打开的ResutSet,那么会类型转换失败。

建议不要强转为PreparedStatement,直接用Statement!

不过最关键的仍然是关闭Connection。
山城忙碌人 2012-07-22
  • 打赏
  • 举报
回复
忘记补充,数据库是sqlserver2005

67,550

社区成员

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

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