E ai galera do Fórum tudo blz…
Seguinte, estou criando um projeto onde preciso fazer a conexão com um Banco de Dados PostgreSQL…
Estava pensando em usar os Padrões de Projeto Singleton e DAO.
Mas vamos a prática, como eu faria isso?
Tenho uma classe Singleton, para garantir o retorna de uma unica instancia da conexao…
public class DBConnectionPool {
private static DBConnectionPool instance;
private DBConnectionPool() {
// Construtor é privado. Cria conexão para o banco de dados
}
public synchronized static DBConnectionPool getInstance() {
if (instance == null) {
instance = new DBConnectionPool();
}
return instance;
}
public Connection getConnection() {
Connection conn = null;
//Pega uma conexão livre ou uma nova conexão
return conn;
}
public void releaseConnection(Connection conn) {
//Libera a conexão de volta pro pool
}
}
Tudo bem, tenho um Singleton, mas é dentro do construtor desta classe que eu devo criar a minha conexão?
Class.forName("org.postgresql.Driver");
Connection conexao = DriverManager.getConnection("jdbc:postgresql:java", "root", "larhena");
Outra dúvida:
E depois, como eu faço para acessar essa conexão criada?
public class TestDAO implements InterfaceTestDAO{
private Connection con;
public TestDAO(){
this.con = ??????????????????????
this.con = DBConnectionPool.getInstance(); //retorna uma instancia da classe DBConnectionPool e não uma instancia de Connection...
}
public void metodoQueExecutaQuery(String name) {
// TODO Auto-generated method stub
Statement stmt = null;
ResultSet rs;
try {
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM....");
// PEGA O RESULTADO....
rs.close();
stmt.close();
} catch(Exception e) {
//TRATA EXCEÇÃO
}
return null;
}
}
Espero que entendam minhas duvidas… Abraço a todos…