Categorias

Classe de conexão e acesso ao banco de dados

É muito importante dentro de uma aplicação web, centralizar em alguma classe a execução de queries em algum SGBD pois desta forma é possível garantir mais segurança e confiabilidade na aplicação.
Neste código, criei uma classe que estabelece a conexão com um SGBD, executa uma query SQL passada por parâmetro e fecha conexão.

A conexão neste exemplo utiliza o JDBC.
No código também há o exemplo de criação de um objeto utilizando a classe.

<%!
import java.sql.*;

public class AcessoBD{
    /*************************************************************
     ATRIBUTOS
    *************************************************************/
    //Banco de Dados
    private String NomeDSN;
    private String ConexaoDSN;
    private Connection objConexao;
    private Statement objComando;


    /*************************************************************
     CONSTRUTOR
    *************************************************************/
    public AcessoBD(){
        // Inicializando os atributos
        NomeDSN        = "bd_teste";
        ConexaoDSN    = "jdbc:odbc:" + NomeDSN;
    }
        
    /*************************************************************
     PROPRIEDADES
    *************************************************************/
    private String getConexaoDSN(){
        return ConexaoDSN;
    }
    
    /*************************************************************
     MÉTODOS
    *************************************************************/
    private Connection AbreConexaoBD(){
        Connection objCon;
        // Abrindo a conexão com o banco
        try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                objCon    = DriverManager.getConnection(getConexaoDSN(), "", "");
                //System.out.println ("Conexao com o banco de dados OK.");
                return objCon;
        }
            catch(ClassNotFoundException cnf){
                System.out.println ("Classe JDBC Driver nao encontrada.");
                return null;
            }
            catch(SQLException sql){
                System.out.println ("Erro ao se conectar com o banco de dados.");
                return null;
            }
            catch(Exception e){
                System.out.println (e.getMessage());
                return null;
            }
    }
    
    public ResultSet ExecutaSQL(String strSQL){
        objConexao    = AbreConexaoBD();
        try{
                objComando        = objConexao.createStatement();
    
                // Executando a query
                ResultSet objRS    = objComando.executeQuery(strSQL);

                // Retornando o ResultSet
                return objRS;
        }
            catch(Exception e){
                System.out.println (e.getMessage());
                return null;
            }
    }
    
    public void FechaConexaoBD(){
        try{
            objComando.close();
            objConexao.close();
        }
            catch(Exception e){
                System.out.println ("Nao foi possivel fechar a conexao com o banco de dados.
" + e.getMessage());
            }
    }
}
%>

<%
    // Exemplo de chamada
    AcessoBD objAcessoBD = new AcessoBD();
    ResultSet objRS = objAcessoBD.ExecutaSQL("SELECT * FROM TBCONTATOS");
    if (objRS != null){
        while (objRS.next()){
            out.println (objRS.getString("CONTATO_NOME"));
        }
        objRS.close();
    }
    else{
        out.println ("Não foram encontrados contatos.");
    }
    objAcessoBD.FechaConexaoBD();
%>