Dae galera… eu estou desenvolvimento um sistema em que será aberto uma conexão para cada sessão…
Só que eu queria que quando a sessão expirasse ou o usuário fechasse o browser, ele fechasse essa conexão… como vou conseguir fechar uma conexão quando o cara vai e fecha o browser?? Alguma idéia?
Abraço!!
Fechando a conexão quando expira a sessão!
7 Respostas
Amigo vc esta utilizando algum framework de persistencia, por exemplo hibernate?
Conexão por Sessão ??
Utilize um pool e reuse as conexões…
Não invente a roda, ainda mais uma quadrada.
Já me falaram pra utilizar um pool de conexão… só que eu vou ter varias bases de dados diferentes… dependendo do usuário vou para uma base diferente… já vasculhei a net e não consegui achar nada disso… na verdade até achei algo… mas eu teria que criar para cada usuário um getConnection diferente… aí seria bem trabalhoso… se alguém tiver alguma ideia… e mesmo assim continua a pergunta… como fechar a conexão quando o usuário fecha o browser ou a sessão expira?
Valeu pelas respostas…
Abraço!!
Ah… não estou usando nenhum framework de persistencia… é JDBC mesmo!! heehh
Abraço!!
Utilize um pool em cada banco…
Acredito ser muito mais simples do que está pensando.
Se está utilizando o TOMCAT por exemplo, pode deixar o tomcat gerenciar as conexões para vc com o dbcp.
Então só busca as conexões do pool dele na hora que precisar.
Se utiliza um container javaee é mais fácil ainda…
Teria algum exemplo?? Ja baixei o dbcp.. fiz alguns testes e tal... teria alguma ideia de como fazer isso??
Tipo.. quando o cara se loga no sistema... essa base de dados será comum para todos, pois é a partir dela que eu vou pegar a base de dados para cada usuário.. então o usuário x se conectou na base x, dae como fazer isso??
O exemplo que achei foi esse:
public class ConnectionFactory{
private DataSource ds;
private static ConnectionFactory instance = new ConnectionFactory();
public ConnectionFactory(){
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com. mysql.jdbc.Driver");
bds.setUsername("root");
bds.setPassword("1234");
bds.setUrl("jdbc:mysql://localhost/meu_banco");
ds = bds;
}
public static ConnectionFactory getInstance(){
return instance;
}
public Connection getConnection(){
return ds.getConnection();
}
}
public class MinhaApp{
public static void main(String[] args){
Connection con = ConnectionFactory.getInstance().getConnection();
PreparedStatement stmt = con.prepareStatement("SELECT * FROM tabela");
ResultSet res = stmt.executeQuery();
//restante
}
}
public ConnectionFactory(){
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com. mysql.jdbc.Driver");
bds.setUsername("root");
bds.setPassword("1234");
bds.setUrl("jdbc:mysql://localhost/meu_banco");
ds = bds;
}
Se vc puder me ajudar ou dando uma dica descritiva mesmo.. ja ajudaria.... estou nesse impasse faz dois dias... Abraço e valeu pela resposta!!
Cara tenta utilizar um framework…Acho que ficaria um pouco mais facil…eu utilizo o mentawai que te permite um bom controle de sessões e suporte ao dbcp e c3po… flw []'s