Como se fecha uma conexão usando JDBC?

A questão é que com o Pool, você usa o idioma de abrir e fechar por consulta, mas o pool evita a abertura e fechamento, reusando uma conexão. Fechar uma conection é uma operação que passa a ser substituída por “devolver ao pool”.

Na prática, numa aplicação bem feita, você acaba com uma conexão aberta o tempo todo do mesmo jeito. A vantagem é que ele pode matar a conexão mais rapidamente caso o usuário deixe o sistema aberto e se recuperar caso o banco caia.

E outro detalhe é que ele é ridiculamente fácil de configurar, ao ponto de você ter que pensar três ou quatro vezes se não quer mesmo usa-lo. É quase tão fácil quanto escrever sua classe Singleton.