Da quel che ricordo da un corso di formazione, mi risulta però che:

1. se sullo stesso database accedono più applicazioni, è bene che ciascuna rilasci la connessione al database non appena possibile. Tenere impegnata la connessione senza utilizzarla, quando magari altre applicazioni non riescono ad accedere perché non trovano una connessione utilizzabile non è cosa buona e giusta.

2. non è che si crei e si distrugga una connessione, il database (nel corso però si parlava espressamente di Oracle) ha un pool di connessioni già pronte all'uso che assegna a chi ne faccia richiesta. Il getConnection semplicemente ne restituisce una.

Quindi, anche se il punto 1 non centrasse una mazza con il caso in questione (unico o pochi applicativi che accedono contemporaneamente al database), il punto 2 dovrebbe significare che in termini di tempo non ci guadagni molto.
Io ricordo di aver fatto una applicazione che faceva qualche migliaio di query nell'arco di qualche decina di minuti, aprendo una sola connessione.
Con una certa frequenza la connessione andava comunque persa per errori "del Socket" che non ho mai risolto, se non riaprendo una nuova connessione al volo, quando uno di questi errori si presentava.