Pessoal fiz uma classe para uma conexão JDBC, para conectar e desconectar de uma base de dados, porem ao tentar desconectar ele mostra a mensagem que Conectou e Desconectou da Base de dados, porem o objeto da conexão fica na memória. Alguem sabe porque acontece esse erro?
Obs: Se coloco o retorno como null funciona. Então para que serve o close() se não fecha a conexão?
Segue abaixo a mensagem:
Conectado
DESCONECTADO
com.ddtek.jdbc. openedge. OpenEdgeConnecti on@120b476
Objeto conexão na memoria: com.ddtek.jdbc. openedge. OpenEdgeConnecti on@120b476
====================================================================================
[code]// Classe de Conexão
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
//================ Dados do Banco de Dados(PROGRESS) - Webdesk =================================//
//Dados do Banco de Dados
private static final String NOME_BANCO = "xxx";//Nome do Banco
private static final String USER = "xxx";
private static final String PASSWORD = "xxx";
//Conexão com Progress - Conectores openedge.jar, util.jar, base.jar, pool.jar, spy.jar
private static final String STR_DRIVER = "com.ddtek.jdbc.openedge.OpenEdgeDriver";
private static final String STR_CON = "jdbc:datadirect:openedge://neo:16006;databaseName="+NOME_BANCO;
//==================================================================================//
//========================= Função para conectar com banco de dados =========================//
public Connection Conectar(Connection conn){
try {
Class.forName(STR_DRIVER);
conn = DriverManager.getConnection(STR_CON, USER, PASSWORD);
System.out.println("Conectado");
return conn;
} catch (ClassNotFoundException e) {
System.out.println("Driver nao encontrado");
e.printStackTrace();
return null;
} catch (SQLException e) {
System.out.println("Erro ao obter a conexão");
e.printStackTrace();
return null;
}
}
//==================================================================================//
//======================= Função para desconectar do banco de dados =========================//
public Connection Desconectar(Connection conn){
try {
if(conn !=null){
System.out.println("DESCONECTADO");
conn.close();
}
return conn;
} catch (SQLException e) {
System.out.println("Erro ao tentar Desconectar");
e.printStackTrace();
return conn;
}
}
//==================================================================================//
}
====================================================================================
// Classe de execução
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.xxx.model.DBConnection;
public class CadastroComplexoController extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
public CadastroComplexoController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection conn = null;
DBConnection db = new DBConnection();
conn = db.Conectar(conn);
conn = db.Desconectar(conn);
System.out.println(conn.toString());
}
} [/code]