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。

java.sql.Connection类有两个方法可以判断连接是否有效一个是java.sql.Connection#isValid一个是java.sql.Connection#isClosed这两个方法的应用场景区别还是很大的首先看isClosed方法org.apache.commons.dbcp2.DelegatingConnection#isClosed这方法是判断java对象Connection对象是否是连接状态,而不是到数据库的连接是否正常。比如数据库宕机,Connection对象的状 如果先访问关系型 数据库 再访问Hive,那么没问题; 如果先访问Hive,再访问关系型 数据库 ,报错: java .lang.IllegalArgumentException: Bad URL format try { // 排除 连接 不上的错误 Class.forName(driveClass); Driver...
不需要远程 连接 工具,直接用代码main 方法 快速 测试 某一 数据库连接 是否 可用的代码: import java .sql.Connection; import java .sql.DriverManager; * @Author: chuxia0811 * @Date: 2021/9/15 22:50 * @Description : public class JDBCTest { // 定义 数据库 驱动名称 private static String driverName =
监控多个 数据库 的时候遍历拼接一下 数据库 路径、用户名密码就好了 import java .sql.Connection; import java .sql.DriverManager; import java .sql.SQLException; import org.junit.Test; public class JDBCTest { @Test public void JDBCAll() throws ClassNotFoundException, SQLException
很快的 测试 ,复制代码,更改一下 数据库 名、username、password就好了 import java .sql.Connection; import java .sql.DriverManager; import java .sql.SQLException; import org.junit.Test; public class JDbctest { @Test public void jdbcall() throws ClassNotFoundException, SQLException{
一、 连接 mysql 数据库 : 步骤一:在eclipse下面建一个项目,我的是JDBC_Test, 步骤二:选中项目名称,右键选择Build Path->Configure Build Path…. 步骤三:进入 Java Build Path 选择Libraies,如下图所示 步骤四:选择Add External JARs.. 如下图 步骤五:找到已经下载好的MySQL驱...