Oi Daniel
Você está correto, falha minha!
Para fazer um pool eu recomendo usar o C3PO, é um biblioteca que é bastante popular que implementa o DataSource, você tem outras opções também ( apache DBCP por exemplo)
Para fazer o download:
https://sourceforge.net/projects/c3p0/files/latest/download
depois de baixar você vai precisar de 2 jars :
mchange-commons-java-0.2.11.jar
c3p0-0.9.5.2.jar
Você vai precisar jogar esses 2 caras no projeto e adiciona-los (clicar com o direto no jar e ir Build Path > add to library.
Segue o código usado para criar uma conexão :
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setUser("<Usuário>");
ds.setPassword("<SEnha>");
ds.setJdbcUrl("jdbc:mysql:<caminhoDoSeuBanco>");
ds.setUnreturnedConnectionTimeout(60);
ds.setDebugUnreturnedConnectionStackTraces(true);
ds.setMaxPoolSize(20);
ds.setMinPoolSize(5);
ds.setInitialPoolSize(5);
ds.setMaxIdleTime(1800);
ds.setMaxConnectionAge(1800);
Se possível, tenta dar um a lida rápida na documentação do c3po:
http://www.mchange.com/projects/c3p0/#what_is
Você pode isolar isso em uma classe e dar um new nos DAOS que você for usar.
Tenta fazer isso, qualquer coisa você responde aqui.
abraço!