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