Estou com um problema ao re-executar um Servlet, seguinte tenho um Servlet que faz uma conexão com o banco de dados e grava algumas coisas em variáveis que são usadas, e depois exibe uma mensagem na tela, até ai tudo bem, o problema é que se executo uma vez perfeito mas na hora de re-executar as variáveis não pegam os novos valores que o select retorna e sim os do primeiro select.
Vc esta fazendo o select no metodo init() do servlet ???
Poste o codigo para a gente olhar ???
kuchma
marciocamurati:
Estou com um problema ao re-executar um Servlet, seguinte tenho um Servlet que faz uma conexão com o banco de dados e grava algumas coisas em variáveis que são usadas, e depois exibe uma mensagem na tela, até ai tudo bem, o problema é que se executo uma vez perfeito mas na hora de re-executar as variáveis não pegam os novos valores que o select retorna e sim os do primeiro select.
Alguém sabe oq está acontecendo ?
Pela tua descricao acho que podem ser duas coisas: ou voce realmente nao esta armazenando os dados nas variaveis corretamente ou voce esta utilizando variaveis de instancia (atributos de classe) de maneira inadequada em servlets (servlets nao sao thread-safe).
Marcio Kuchma
marciocamurati
Vai o código ai, e no init() estou iniciando a conexão com banco.
privateStringpedido;privateConnectionconn;privateStringstringRazao,stringDoc,stringLogradouro;privateintintNumero;publicvoidinit(){conectarMysql();}publicvoiddestroy(){desonectarMysql();}publicvoidrecuperarDadosPagamento(Connectionconn,Stringpedido){try{Statementstmt=conn.createStatement();ResultSetrsPagamento=stmt.executeQuery("SELECT teste.*, teste2.* FROM teste INNER JOIN teste2 ON teste.id = teste2.id WHERE teste.idfinanceiro = "+pedido+"");rsPagamento.next();stringRazao=rsPagamento.getString("razao");stringDoc=rsPagamento.getString("doc");stringLogradouro=rsPagamento.getString("logradouro");intNumero=rsPagamento.getInt("numero");}catch(SQLExceptionex){}}
Se alguém puder me ajudar, tá ai os pedaços do código.
marciocamurati
Isso que o kuchma pode estar ocorrendo pois este é meu primeiro servlet, então estou fazendo e aprendendo ao mesmo tempo.
[]s
danieldestro
Nunca use atributos de classe para guardar valores que são relativos a um request ou sessão de usuário.
marciocamurati
Mexi bastante no código mas continuo tendo aquele problema parece um cache a desgraça quando acesso a primeira vez perfeito mas se vou no banco e altero os valores nda, ele continua com os antigos, estou postando abaixo o objeto que faz realiza a coleta dos dados do DB.