Artigo extraído do site:www.codigofonte.com.br

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();

%>