Boa noite galera...
Estou fazendo uma aplicaçao Desktop.
Estou usando DAO, depois posto o codigo abaixo, mas meu problema é, eu quero reutilizar a conexao aberta, mas não estou conseguindo. A conexao fecha a abre a todo comando no banco. Quando uso a aplicaçao no proprio computador onde está o postgre nao ha problema algum mas quando coloco o sistema na rede e acesso de outras maquinas fica muito lento pq toda hora ele tem que abrir a conexao.
Abaixo coloco como fiz:
// Essa é minha classe de conexaopublic class CriaConexao {
public static Connection getConexao() throws SQLException {
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://localhost:5432/elen";
String usuario = "sistema";
String senha = "********";
Connection con = null;
try {
if(con==null) // Aqui não funciona, ele sempre pega a con == null
{
Class.forName(driver);
con = DriverManager.getConnection(url, usuario, senha);
System.out.println("Banco de dados conectado");
//return con;
}
} catch (ClassNotFoundException e) {
System.out.println("\nNão foi possível estabelecer conexão com a base de dados.\n");
e.printStackTrace();
return null;
}
return con;
}
}
// aqui é onde chamo a conexao e faco as alteracoes no banco
public class PacienteDao {
private Connection conexao;
public PacienteDao() throws SQLException{
if (this.conexao==null) {
try {
this.conexao = CriaConexao.getConexao();
} catch (SQLException ex) {
Logger.getLogger(PacienteDao.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void altera(Paciente p) throws SQLException{
String sql = "update paciente set pac_nome = ?, " +
"pac_endereco = ?, " +
"pac_bairro = ?, " +
"pac_cidade = ?, " +
"pac_cep = ?, " +
"pac_telefone = ?, " +
"pac_celular = ?, " +
"pac_rg = ?, " +
"pac_cpf = ?, " +
"pac_email = ?, " +
"pac_ativo = ?, " +
"pac_situacao = ?, " +
"pac_associacao = ? where pac_codigo = ?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, p.getPac_nome());
stmt.setString(2, p.getPac_endereco());
stmt.setString(3, p.getPac_bairro());
stmt.setString(4, p.getPac_cidade());
stmt.setString(5, p.getPac_cep());
stmt.setString(6, p.getPac_telefone());
stmt.setString(7, p.getPac_celular());
stmt.setString(8, p.getPac_rg());
stmt.setString(9, p.getPac_cpf());
stmt.setString(10, p.getPac_email());
stmt.setInt(11, p.getPac_ativo());
stmt.setInt(12, p.getPac_situacao());
stmt.setString(13, p.getPac_associacao());
stmt.setInt(14, p.getPac_codigo());
stmt.execute();
stmt.close();
}
}
alguem tem uma ideia de como reutilizar ja a conexao ativa?
NAO estou fazendo aplicacao WEB.
Desde ja Obrigado..
8)