Erro ao estabelecer conexão com o banco de dados PostGree

2 respostas
fredericoengels

Olá Pessoal, tudo bem? :smiley:

Bom, eu sou iniciante em Java e estou fazendo um projeto em JDBC + JSP + Servlets. Já tenho uma boa noção de JSP e Servlets, pois já fiz um projeto pra faculdade usando essa tecnologia. Minha idéia é criar um CRUD simples de Clientes, e quero fornecer a funcionalidade de Geração de Relatório dos clientes cadastrados. Trata-se de um projeto apenas para treino mesmo, pois vou ter que implantar essa funcionalidade (Geração de relatórios) em um sistema que usa Hibernate para persistência e JSF.

Até agora fiz o bean (ClienteBean) , e como vou ter que me conectar com um banco de dados, no meu caso, Postgree, resolvi criar uma classe específica para a conexão, para não ter que ficar repetindo código quando for preciso me conectar.

Segue o código da minha classe (Conexao.java) :

package br.crud.conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author FredAlencar
 */
public class Conexao {
    private static Conexao unicaInstancia;
    private static Connection conexao;
    private static final String DRIVER = "org.postgresql.Driver";
    private static final String URL = "jdbc:postgresql://localhost:5432/teste";
    private static final String USER = "postgres";
    private static final String PASSWORD = "fred";

    static {
        try {
            Class.forName(DRIVER);
        }catch(ClassNotFoundException e) {
            System.out.println("Driver nao encontrado");
        }
    }
    
    
    
    private Conexao() {}


    public static synchronized  Conexao getInstance() {
        if ( unicaInstancia == null ) {
            unicaInstancia = new Conexao();
        }
        return unicaInstancia;
    }

    public Connection abrirConexao() {
        try {
            conexao = DriverManager.getConnection(URL,USER,PASSWORD);
        }catch(SQLException e) {
            System.out.println("Erro ao Abrir conexão com o banco");
        }
        return conexao;
    }


    public void encerrarConexao(Connection conexao) {
        try {
            if ( conexao != null )
                conexao.close();
        }catch (Exception e) {
            System.out.println("Erro ao Encerrar conexao com o banco");
        }
    }
}

Diante mão eu digo que esse código não funciona, está informando que o Driver não foi encontrado (ClassNotFoundException).

Porém, contundo, todavia, estou usando o Netbeans e observei que o driver do Postgree está lá sim, inclusive consigo estabelecer uma conexão com o banco de forma manual usando a IDE.

Alguém pode me dar um help? E em relação a criação de uma classe específica para Conexão com o banco, isso é uma boa prática? Tem algo que possa melhorar nesse código?

Obrigado a todos pela atenção.

2 Respostas

thiagocg

Olá fredericoengels, quando vc diz que o driver está lá vc esta dizendo fisicamente? E no classpath de sua aplicação tb confirmou se está la?

[]'s

fredericoengels

Na verdade, o driver constava na aba Serviços -> Banco de Dados -> Drivers do Netbeans. Porém, não estava no meu classpath, adicionei o .jar do driver no classpath e resolveu o problema.

Muito obrigado!

Alguém ai aponta alguma melhoria nesse código? Seja na questão de performance, segurança ou em qualquer outro aspecto?

Criado 23 de fevereiro de 2011
Ultima resposta 23 de fev. de 2011
Respostas 2
Participantes 2