Connection 接口中的 isClose() 方法和 isValid() 方法有什么区别?
What is the difference between isClose() method and isValid() method in Connection interface?
isClose()
方法和Connection
界面中的isValid()
方法有什么区别?
http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html
无效连接是什么意思?
这是否意味着连接已打开且无效?
连接无效时会发生什么?
Javadoc 够清楚了。
如果通过调用 Connection.close()
关闭连接,isClose()
仅保证 return 为真。如果连接由于某些错误而关闭,isClose()
不一定会 return 为真。因此,如果 return 为真,则可以确定连接已关闭,但如果 return 为假,则无法确定。
isValid()
与 isClose()
相反。它尝试通过 运行 数据库查询来积极检查连接是否仍处于打开状态。如果它 returns true
,您肯定知道连接已打开。如果它 return 为 false,则您无法确定它是否打开(因为查询可能由于某些网络问题而延迟,这会阻止它在给定的超时之前完成)。
isClosed() :-
如果我们在连接上调用 close() 或在连接上发生任何致命错误,那么它是 return true。所以你必须为你的代码创建新的连接。
isValid(int timeout) :-
在这种情况下,首先它会检查是否关闭(如果未关闭),然后驱动程序会在连接上提交查询以测试它是否正常工作。如果有效,则 return 真或假。
isClose()
方法和Connection
界面中的isValid()
方法有什么区别?
http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html
无效连接是什么意思?
这是否意味着连接已打开且无效?
连接无效时会发生什么?
Javadoc 够清楚了。
如果通过调用Connection.close()
关闭连接,isClose()
仅保证 return 为真。如果连接由于某些错误而关闭,isClose()
不一定会 return 为真。因此,如果 return 为真,则可以确定连接已关闭,但如果 return 为假,则无法确定。
isValid()
与 isClose()
相反。它尝试通过 运行 数据库查询来积极检查连接是否仍处于打开状态。如果它 returns true
,您肯定知道连接已打开。如果它 return 为 false,则您无法确定它是否打开(因为查询可能由于某些网络问题而延迟,这会阻止它在给定的超时之前完成)。
isClosed() :-
如果我们在连接上调用 close() 或在连接上发生任何致命错误,那么它是 return true。所以你必须为你的代码创建新的连接。
isValid(int timeout) :-
在这种情况下,首先它会检查是否关闭(如果未关闭),然后驱动程序会在连接上提交查询以测试它是否正常工作。如果有效,则 return 真或假。