NetTest.java
public class NetTest{
boolean connectedDb ;
public static void main(String[] args) {
String dbResult = openConnection();
if ("数据库连接成功".equals(dbResult)) {
dbManager.connection = cm.getConnection();
connectedDb = true;
} else {
connectedDb = false;
}
// 15s 检测一次网络连接
Timer timer = new Timer();
timer.schedule(new TimerTask_sqltest(timer), 3 * 1000, 15000);
}
class TimerTask_sqltest extends TimerTask {
private Timer DbTime;
public TimerTask_sqltest(Timer DbTime) {
this.DbTime = DbTime;
}
@Override
public void run() {
boolean oldConnectedDb = connectedDb;
Connection sqlconn = openConnection;
if (Objects.isNull(sqlconn)) {
connectedDb = false;
} else {
try {
sqlconn.close();
connectedDb = true;
} catch (Exception e) {
connectedDb = false;
}
}
if (!connectedDb && oldConnectedDb) {
System.out.println("数据库连接异常,请检查网络是否通畅!");
}
}
}
/**
* 打开连接
* @return
*/
public Connection openConnection() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception e) {
return "加载数据库驱动失败:" + e.getMessage();
}
String url = xx ;
String userName = xx ;
String password = xx;
try {
connection = DriverManager.getConnection(url,userName,password);
return "数据库连接成功";
} catch (SQLException e) {
e.printStackTrace();
return "数据库连接失败:" + e.getMessage();
}
}
}