Você pode definir o Timeout no DriverManager assim:
DriverManager.setLoginTimeout(10);
Connection c = DriverManager.getConnection(url, username, password);
O que implicaria que, se a conexão não puder ser aberta dentro do tempo determinado, ela expirará.
Em termos de manter uma conexão aberta para sempre, é possível se você não fechar a conexão, mas pode não ser uma boa ideia. As conexões devem ser fechadas assim que você terminar com elas.
Se você deseja otimizar a abertura e o fechamento de conexões, pode usar um pool de conexões.