java判断数据库连接是否有效的方法
java.sql.Connection类有两个方法可以判断连接是否有效一个是java.sql.Connection#isValid一个是java.sql.Connection#isClosed这两个方法的应用场景区别还是很大的首先看isClosed方法org.apache.commons.dbcp2.DelegatingConnection#isClosed这方法是判断java对象Connecti
java.sql.Connection类有两个方法可以判断连接是否有效
一个是java.sql.Connection#isValid
一个是java.sql.Connection#isClosed
这两个方法的应用场景区别还是很大的
首先看isClosed方法
org.apache.commons.dbcp2.DelegatingConnection#isClosed
这方法是判断java对象Connection对象是否是连接状态,而不是到数据库的连接是否正常。比如数据库宕机,Connection对象的状态可能还是连接状态isClosed=false,这时候如果通过Connection对象进行一次数据库操作,这时Connection对象才能真正判断出数据库异常,再次调用isClosed返回的才是true。
而org.apache.commons.dbcp2.DelegatingConnection#isValid
首先会调用isClose方法判断连接状态
然后进行一次尝试连接数据库操作判断数据库是否正常响应。
org.mariadb.jdbc.MariaDbConnection#isValid
org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol#isValid
因此可以知道,isClosed是true,isValid一定是false,isClosed是false时,isValid不一定是true。
更多推荐
所有评论(0)