Pronto, já implementei. Acho que ficou bem simples e clean, do jeito que eu precisava.
André, achei melhor não mexer com o pool pelo menos por enquanto, porque a aplicação será realmente simples, poucos acessos.
A estrutura foi a seguinte:
Classe DAO abstrata:
public abstract class DAO
{
private static String url;
private static String username;
private static String password;
private static String driver;
private static Boolean dadosNull = true;
protected DAO()
{
if(dadosNull)
{
url = "jdbc:mysql://localhost:3306/panacea";
username = "root";
password = "root123";
driver = "com.mysql.jdbc.Driver";
dadosNull = false;
try
{
Class.forName(driver);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
protected Connection getConnection() throws SQLException
{
return DriverManager.getConnection(url, username, password);
}
}
Para cada entidade do domínio haverá uma classe de persistência correspondente que extende DAO.
Os métodos das subclasses DAO que farão as conexões (uma em cada chamada de método), invocando o getConnection da superclasse, sendo que esses métodos também ficam responsáveis por fechar posteriormente as conexões.
Em resumo: Uma conexão para cada acesso ao banco, com os dados do banco encapsulados numa superclasse e setados somente na primeira vez que uma subclasse for instanciada. Futuramente esses dados serão carregados por um arquivo properties.
O que acharam?