为什么只有conn关闭之前需要判断是否是否已经关闭?rs和stmt却不需要?
# 具体遇到的问题
到底有没有助教能解释明白,不懂让讲师来解答,别强行东拉西扯浪费时间。还把我原来的问题删了几个意思???
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
正在回答
同学你好,1. 可能是老师刚没有理解一下的意思,给您的学习带来不便,深感抱歉!
2. 因为ResultSet与Statement对象要么为null,要么就是可以被使用的状态所以不用判断,但是,作为Connection连接来说,除了这个对象可以为null以外,还可能会存在已经被关闭的情况,那么,已经被关闭的连接就不能再去执行close()了,也就是说只能在打开状态下,连接才可以被关闭。
有一种是比较极端的情况,比如:作为当前JDBC底层使用的连接池,那么对于连接池来说,里边的连接是每一个连接对象,他是一定会存在的,但是这个连接不一定是可以使用的open状态,当如果我们在使用的时候没有做这个状态判定的话就会出问题了。所以ResultSet与Statement对象不用做是否关闭的判断,而Connection需要。
同学你好,1. 是不会删除同学的问答的,可能与网络存在一定的关系,同学可以重新刷新页面查看一下。
2. 如果不使用连接池,ResultSet与Statement对象可以不进行关闭的,Connection一旦关闭,数据库物理连接就被释放,所有相关Java资源也可以被GC回收了。但如果使用连接池,则Connection关闭并不是物理关闭,只是归还连接池,从而ResultSet与Statement对象都需要进行关闭才可以。
3. 如果同学还存在不理解的地方同学可以重新反馈一下,老师会帮助同学理解学习的。
注:连接池在后期会详细讲解同学现阶段了解一下即可。
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星