Puoi impostare il Timeout su DriverManager in questo modo:
DriverManager.setLoginTimeout(10);
Connection c = DriverManager.getConnection(url, username, password);
Il che implicherebbe che se la connessione non può aprirsi entro il tempo specificato, si verifica un timeout.
In termini di mantenere una connessione aperta per sempre, è possibile se non si chiude la connessione, ma potrebbe non essere una buona idea. Le connessioni dovrebbero essere chiuse non appena hai finito con loro.
Se desideri ottimizzare l'apertura e la chiusura delle connessioni, puoi utilizzare un pool di connessioni.