1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
class ConnectionWithTimeout extends Thread {
public volatile Connection connection = null;
private final String path;
private final String user;
private final String passwd;
public ConnectionWithTimeout(String path, String user, String passwd) {
this.path = path;
this.user = user;
this.passwd = passwd;
}
@Override
public void run() {
try {
connection = DriverManager.getConnection(path, user, passwd);
}
catch (SQLException e) {
System.out.println("Echec connection.");
}
}
static public Connection getConnection(String path, String user, String passwd, int timeoutMs) {
ConnectionWithTimeout connectionWithTimeout = new ConnectionWithTimeout(path, user, passwd);
connectionWithTimeout.start();
try {
connectionWithTimeout.join(timeoutMs);
}
catch (InterruptedException e) {
}
return connectionWithTimeout.connection;
}
} |
Partager