Java 连接接口中的isClose()方法和isValid()方法有什么区别?
Java 连接接口中的isClose()方法和isValid()方法有什么区别?,java,sql,database,connection,Java,Sql,Database,Connection,Connection接口中的isClose()方法和isValid()方法有什么区别? 无效连接是什么意思 这是否意味着连接已打开且无效 当连接无效时会发生什么情况?Javadoc足够清晰 只有通过调用connection.close()关闭连接时,isClose()才保证返回true。如果由于某些错误而关闭了连接,isClose()不一定会返回true。因此,如果它返回true,您可以确定连接已关闭,但如果它返回false,您无法确定 isValid()与isClose()相反。它试图通过运
Connection
接口中的isClose()
方法和isValid()
方法有什么区别?
无效连接是什么意思
这是否意味着连接已打开且无效
当连接无效时会发生什么情况?Javadoc足够清晰 只有通过调用
connection.close()
关闭连接时,isClose()
才保证返回true。如果由于某些错误而关闭了连接,isClose()
不一定会返回true。因此,如果它返回true,您可以确定连接已关闭,但如果它返回false,您无法确定
isValid()
与isClose()相反。它试图通过运行数据库查询,对连接是否仍然打开进行肯定检查。如果它返回true
,您肯定知道连接已打开。如果返回false,您无法确定它是否打开(因为查询可能会由于某些网络问题而延迟,这会阻止查询在给定的超时之前完成)。isClosed():-
如果我们在连接上调用close(),或者在连接上发生任何致命错误,则返回true。因此,您必须为代码创建新连接
isValid(int timeout):-
在这种情况下,首先检查是否关闭,如果它没有关闭,然后驱动程序提交一个关于连接的查询,以测试它是否工作。如果有效,则返回true或false。签出是否有效表示是否打开?是否有其他方法可以确定连接是否有效(或打开)?@Charychap是的,如果isValid()返回true,则表示打开,但即使isValid()返回false,也可能仍然打开。谢谢您的回答。是否有其他方法可以确保连接是否有效(或打开)?@Charychap您可以始终尝试运行数据库查询或更新,如果有效,连接必须打开且有效。