br.com.acc.util.AccException: Closed Statement.
com.evermind.io.ThreadsPrintStream@8f6c52.
local ela não da erro.
minha classe de conexao
package br.com.acc.db;
import br.com.acc.util.ExProperties;
import br.com.acc.util.AccException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
/**
* Objeto responsável pela conexão do usuário ao Banco de Dados.<br>
* Realizando toda a parte de pesquisa de informações contidas no banco,
* inserções e exclusões de informações no banco.
* @author Teófilo Beloti Rosa Netto
* @version 1.4 22/10/2004
*/
public class ConnectionDB implements HttpSessionBindingListener {
/**
* Objeto responsável por buscar as configurações do banco de dados no arquivo de properties.
*/
ExProperties properties = new ExProperties();
private static Connection connection;
private static ConnectionDB instance ;
private static Statement statement;
private static String user;
private static String pws;
private String msg ="";
public ConnectionDB() {
getConnection();
}
/**
* Método responsavel por realizar a conexao do usuario ao banco de dados.
* @param usuario Nickname do usuario
* @param senha Senha do usuario
* @return Retorna uma String informando se a conexão foi concluída com sucesso ou não.
*/
public String conexao(String usuario, String senha ) {
user = usuario;
pws = senha;
try {
Class.forName(properties.propertiesConexaoDriver());
connection=DriverManager.getConnection(properties.propertiesConexaoDriverJDBC(), user, pws);
statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
msg = "";
} catch (ClassNotFoundException e){
msg = e.toString();
connection = null;
} catch (SQLException e ){
connection=null;
if (e.getErrorCode() == 1017){
/*Usuairio ou Senha recusado pelo servidor. */
msg = "Usuario ou senha invalido";
}
else if(e.getErrorCode() == 28001){
/*Senha Expirada */
msg = "0";
}else{
msg = e.getMessage();
}
}
return msg;
}
/**
* Método que retorna a conexão para usuário já conectado.
* @return Retorna a Conexao
*/
public static Connection getConnection(){
return connection;
}
/**
* Método que commita a ações de inserção e exclusão.
* @throws java.sql.SQLException exceções de SQL
*/
public void commit() throws SQLException{
connection.commit();
}
/**
* Método que desfaz a ações de inserção e exclusão.
* @throws java.sql.SQLException exceções de SQL
*/
public void rollback() throws SQLException{
connection.rollback();
}
/**
* Metodo que ativa e desativa o autocommit que para false.
* @param autoCommit valor para o autocommit
* @throws java.sql.SQLException exceções de SQL
*/
public void setAutoCommit(boolean autoCommit)throws SQLException{
connection.setAutoCommit(autoCommit);
}
/**
* Método que executa as Query tipo (Select) das camadas de negocio.
* @param sql comando sql enviada das classes de negocio
* @return Retornando ResultSet
* @throws java.sql.SQLException exceções de SQL
*/
public ResultSet executeQuery(String sql) throws SQLException{
return statement.executeQuery(sql);
}
/**
* Método que executa as Query tipo (Update, Delete e Insert ) das camadas de negocio.
* @param sql comando sql enviada das classes de negocio
* @return retorna o sucesso ou erro
* @throws java.sql.SQLException exceções de SQL
*/
public int executeUpdate(String sql) throws SQLException{
return statement.executeUpdate(sql);
}
/**
* Método que segura conexão do usuário no servido, para que não espire.
* @param event evento da conexão
*/
public void valueBound(HttpSessionBindingEvent event){
try {
if (connection.isClosed()){
conexao(user,pws);
//connection = DriverManager.getConnection(properties.propertiesConexaoDriverJDBC(),user,pws);
}
} catch (SQLException e ){
connection= null;
}
}
/**
* Método que desconecta o usuário do banco.
* @param event evento da conexão
*/
public void valueUnbound(HttpSessionBindingEvent event){
try {
connection.close();
} catch(SQLException e ){
}finally{
connection = null;
}
}
/**
* Metodo que finaliza a conexão do usuário.
*/
protected void finalizer()throws AccException {
try{
setUser(null);
setPws(null);
statement.close();
connection.close();
} catch (SQLException e){
throw new UnespException(e.getMessage());
}
}
/**
* Método que retorna a ConnectionDB instaciada.
* @return retorna a conexao
*/
public static ConnectionDB getInstance(){
if (instance == null){
instance = new ConnectionDB();
}
return instance;
}
/**
* Método que recebe o usuario.
* @param user nickname do usuario
*/
public void setUser(String user) {
this.user = user;
}
/**
* Método que recebe a senha do usuario.
* @param pws senha do usuário
*/
public void setPws(String pws) {
this.pws = pws;
}
public void fechar()throws Exception {
finalizer();
}
}
alguém tem uma ideia do que seja?