Pessoal, existe um Design Patter chamado “Singleton” cujo objetivo é assegurar que uma classe tenha uma única instância e prover um ponto de acesso global a esta instância …
Este padrão seria o ideal para uso com a classe que controla o acesso/conexao com banco de dados certo ??? Ou nao ???
Bem … como usar o Singleton em uma classe para conexao a banco ?
Cara, eu uso essa classe que eu criei (para conexão com pool). Ela não é singleton mas acho que é mais interessante de ser usada. Eu costumo não instanciar as classes que retornam conexão, acho mais legal usar métodos estáticos.
importjava.sql.*;importjava.util.*;importorg.postgresql.jdbc3.*;abstractpublicclassAcessoBD{// As configurações são feitas com os atributos estáticos// host, ou ip, do servidorprivatestaticfinalStringSERVER="255.255.255.255";// nome da base de dadosprivatestaticfinalStringDATA_BASE="bd1";// número máximo de conexõesprivatestaticfinalintMAX_CONNECTIONS=100;// número inicial de conxõesprivatestaticfinalintINITIAL_CONNECTIONS=15;// O pool em siprivatestaticJdbc3PoolingDataSourcepool=null;// nome do usuárioprivatestaticfinalStringUSER="postgres";// senha do usuárioprivatestaticfinalStringSENHA="senha";// Função que retorna a conexãopublicstaticfinalConnectiongetConexao()throwsSQLException{// Se o pool não foi instanciado então a função de instanciar // é chamadaif(pool==null){iniciarPool();}Connectionconexao=pool.getConnection();conexao.setAutoCommit(true);returnconexao;}// Função que instancia o poolprivatestaticfinalvoidiniciarPool()throwsSQLException{pool=newJdbc3PoolingDataSource();pool.setServerName(SERVER);pool.setDatabaseName(DATA_BASE);pool.setUser(USER);pool.setPassword(SENHA);pool.setMaxConnections(MAX_CONNECTIONS);pool.setInitialConnections(INITIAL_CONNECTIONS);}}