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

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.

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

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?