常见java中,一个有DB访问的方法,最后都有这么一段:
finally
{
resultSet.close();
statement.close();
connection.close();
}
而c#中,一个有DB访问的方法,最后都有这么一段:
finally
{
dateReader.Close;
CloseConnection(facadeContext);
}我的问题是:
不管java中的resultSet、statement,还是c#中的dateReader
都建立在connection之上的,那么我们为什么不可以用connection.close();来结束一切,
而不必去显式的关闭诸如resultSet、statement、dateReader?
很多书上提供的代码都是显式的关闭了那么多东西,
我不明白的是,连接都关闭了,而resultSet、statement、dateReader这些东西还需要显式的关闭吗?为什么?
请高手赐教!
finally
{
resultSet.close();
statement.close();
connection.close();
}
而c#中,一个有DB访问的方法,最后都有这么一段:
finally
{
dateReader.Close;
CloseConnection(facadeContext);
}我的问题是:
不管java中的resultSet、statement,还是c#中的dateReader
都建立在connection之上的,那么我们为什么不可以用connection.close();来结束一切,
而不必去显式的关闭诸如resultSet、statement、dateReader?
很多书上提供的代码都是显式的关闭了那么多东西,
我不明白的是,连接都关闭了,而resultSet、statement、dateReader这些东西还需要显式的关闭吗?为什么?
请高手赐教!
我明白那是在释放资源
我想知道:
=========================================================
是不是connection.close();这么一句话就可以?
而不必再要譬如resultSet.close(); 、statement.close();或者dateReader.Close; 的操作?
毕竟resultSet、statement、dateReader等都是建立在connection之上。
=========================================================
不知道我说明白了没有?
请看清楚我问什么,再做回答。
这也造成了Java的白花齐放的局面。这是好事情,但对于某些人来说,就是坏事情。如果你不想这么繁琐,你应该用现成的组件,比如Hibernate, JPA
而不是你自己操作JDBC的Connection.
OVER。 有了选择真的好,有了如此多的选择,真的好吗??
毕竟不是一个公司的产品,设计的思路也不同
你不喜欢
finally
{
resultSet.close();
statement.close();
connection.close();
}
因为繁琐?还是因为?
如果你希望用
CloseConnection();
关闭的话
那你可以写一个CloseConnection类
这个类中包含了上述三个方法,你每次需要如上关闭的话
调用CloseConnection类一次就搞定了
這樣就可以少寫點
而大家的回答确充分的体现了你们的网络语言特性。总结一句 你们把csdn搞烂了
我想楼主的意思是:
确定一下connection.close(); 是否会随之关闭resultSet statement
如果是这样的话就写了2句多余的代码我是看过帮助文档的 关于statement有说明,如果连接关闭statement随之关闭
resultSet好像没看过,我现在也不怎么写java了
本人是发帖的人,来这里做个总结。
我发帖的目的就是想要确定一下connection.close(); 是否会随之关闭resultSet statement?
1楼----没有仔细阅读原帖,答非所问。
3楼----站的很高,却更是离题千里之外。
4楼----没有仔细阅读原帖,不知所云。
5楼----比喻在[流程]上很贴切,可以让我接受。我们知道,电子类产品断电对硬件可能造成一些不可预知的危害,只是,我想知道,针对释放资源这个话题,我们可否类似电视的直接断电来over一切,直接connection.close(); ,毕竟它带来的不同于电视断电的伤害。也请老兄深究一下,有一天故地重游,可以再做这个深入探讨。
6楼、7楼、9楼、11楼----谢谢关注。
8楼----没有仔细阅读原帖,作为软件开发人员,力求明白每句代码的意义,减少垃圾代码应该是基本素质之一,而非个人好恶,所谓知其然,更要所以然。
10楼----知我者兄是也。如老兄所述,现在还有两个问题。 A-直接connection.close();是否会给DB带来类似电视断电的危害?
B-直接connection.close();能否随之释放resultSet?
如果A的答案是否定的,B的答案是肯定的,那么我们代码中如下一句足以。
finally
{
connection.close();
}也请路过的各位高手不吝赐教,再次感谢大家,尤其rex0y老兄,谢谢。