Galera apareceu esse erro na minha aplicação. Tenho uma DAO que retorna um resultset, mas se eu tento fechar o preparedStatement, o resultset fica como fechado!
Como resolver isso?
Galera apareceu esse erro na minha aplicação. Tenho uma DAO que retorna um resultset, mas se eu tento fechar o preparedStatement, o resultset fica como fechado!
Como resolver isso?
Especifique mais.
Especifique mais.
O close de qualquer Statement sempre fecha também o ResultSet gerado a partir dele:
http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html#close()
Na aplicação eu faço uma pesquisa de um aluno, e uma jtable é preechida com todas as disciplinas que esse aluno cursa.
Eu tenho um metodo na DAO que retorna um resultSet com todas as disciplinas desse aluno e preenche essa jtable. Está funcionando, porem se faço a mesmo pesquisa varias vezes ele acaba dando esse erro.
Um ResultSet não deve nem ser visto fora do DAO, ele deve apenas preencher alguma Collection, uma List, e retornar essa List (vazia ou preenchida) para a camada que o chamou.
Numa nova pesquisa, crie os statements e os resultsets, faça a consulta novamente, e feche os objetos.
Consegui resolver o problema, dentro do finally coloquei um connection.close (). Uma duvida…tem como abrir apenas uma conexao para todos os metodos do DAO , ou em cada metodo eu abro uma nova e fecho a mesma ?
O correto e abrir e fechar uma conexao por metodo. Se voce manter uma unica conexao aberta durante todo o tempo estara consumindo recursos do banco sem necessidade.