jdbc的 close问题

请问关闭数据库连接时,为什么要先ResultSet的close;然后Statement的close;最后Connection的close
可不可以只关闭Connection的close,其它的两个如果不关闭会有什么后果。

Connection 产生 Statement 产生 ResultSet
Statement 会在流里写入很多数据
ResultSet 会在流里写入很多数据
如果直接关闭 Connection 则Statement或者ResultSet势必会失去对数据库的链接,从而流处理不能持续进行从而断开,而流断开又没及时在内存里处理(可以理解关闭),那么可想而知异常就会出现,你所述的关闭先后顺序也是保证一个数据安全完整的操作流程

因为你先打开连接conn然后在Statement 再结果集ResultSet.
关闭的时候有小到大关闭.这样会避免一些数据库操作异常.

就像,你家一样! 有正门,卧室门! 晚上你回家后,你先要开你家正门,在开你家卧室门,你才能去床上睡觉!第二天你去上班的时候,你要先锁你家卧室门,你不可能先锁你家的正门,在卧室门吧,这样完全不符合逻辑!!!
先ResultSet的close;然后Statement的close;最后Connection的close 避免了一些逻辑上的异常。
还有如果只关闭Connection,会有资源浪费!