[RESOLVIDO] Conexao em PostgreSQL com NetBeans IDE 11.0

blz, vou instalar aqui, desde já agradeço sua atenção. muito obrigado mesmo

Concordo em parte com o @rodriguesabner.
Porém, utilizo o Netbeans 8.2 e 11.0 sem problemas nos projetos desenvolvidos.

Se puder, poste o conteúdo do arquivo frmLogin.java para lhe ajudar.

1 curtida

boa noite, instalei o Netbeans 8.0.1 e esta dando o mesmo erro

public class frmLogin extends javax.swing.JFrame {

Connection con = null;
PreparedStatement PStmt = null;
ConectaBd cb = new ConectaBd();
ResultSet rs = null;
/**
 * Creates new form frmLogin
 */
public frmLogin() {
    
    con = cb.conexao("jdbc:postgresql://localhost:5432/bd_factoring","postgres","9j#d2!&_A0");
    if (con == null) {
        System.exit(0);
    }
    
    setResizable(false);
    this.setType(java.awt.Window.Type.UTILITY);
    initComponents();
    centralizarComponente();
    initComponents();
}

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    txtLogin = new javax.swing.JTextField();
    txtSenha = new javax.swing.JPasswordField();
    btnLogin = new javax.swing.JButton();
    btnCancelar = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jLabel1.setText("Informe login e senha");

    jLabel2.setText("Login:");

    jLabel3.setText("Senha:");

    txtSenha.setText("jPasswordField1");

    btnLogin.setText("Login");

    btnCancelar.setText("Cancelar");
    btnCancelar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnCancelarActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addGap(0, 0, Short.MAX_VALUE)
                    .addComponent(jLabel2))
                .addGroup(layout.createSequentialGroup()
                    .addGap(74, 74, 74)
                    .addComponent(jLabel3)))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 193, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(43, 43, 43))
        .addGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(116, 116, 116)
                    .addComponent(jLabel1))
                .addGroup(layout.createSequentialGroup()
                    .addGap(102, 102, 102)
                    .addComponent(btnLogin)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(btnCancelar)))
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(22, 22, 22)
            .addComponent(jLabel1)
            .addGap(18, 18, 18)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel2)
                .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(18, 18, 18)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel3)
                .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(45, 45, 45)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(btnLogin)
                .addComponent(btnCancelar))
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
    System.exit(0);
}                                           

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(frmLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(frmLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(frmLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(frmLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new frmLogin().setVisible(true);
        }
    });
}

public void centralizarComponente() {
    Dimension ds = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension dw = getSize();
    setLocation((ds.width - dw.width) / 2, (ds.height - dw.height) / 2);
}
// Variables declaration - do not modify                     
private javax.swing.JButton btnCancelar;
private javax.swing.JButton btnLogin;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField txtLogin;
private javax.swing.JPasswordField txtSenha;
// End of variables declaration                   

}

public class ConectaBd {

public Connection conexao(String fonte, String usuario, String senha) {
    
    try {
        Class.forName("org.postgresql.Driver");
        Connection con = DriverManager.getConnection(fonte, usuario, senha);
        JOptionPane.showMessageDialog(null, "Conectado com sucesso! ");
        return con;

    } catch(ClassNotFoundException e){
        JOptionPane.showMessageDialog(null, "Erro em ClassNotFoundException: " + e.getMessage());
        return null;

    } catch(SQLException e){
        JOptionPane.showMessageDialog(null, "Erro em SQLException: " + e.getMessage());
        return null;

    } catch(NoClassDefFoundError e){
        JOptionPane.showMessageDialog(null, "Erro em NoClassDefFoundError: " + e.getMessage());
        return null;
    }        
}

}

Fala Silva, qual o erro?

String driver = “org.postgresql.Driver”;

String caminho = jdbc:postgresql://…"

Falta o método de acesso, sem o qual o seu frmLogin não sabe o que fazer quando, após digitado o login e a senha, o usuário clica no btnLogin.

Inicialmente o seu construtor está assim:

public frmLogin() {
    
    con = cb.conexao("jdbc:postgresql://localhost:5432/bd_factoring","postgres","9j#d2!&_A0");
    if (con == null) {
        System.exit(0);
    }
    
    setResizable(false);
    this.setType(java.awt.Window.Type.UTILITY);
    initComponents();
    centralizarComponente();
    initComponents();
}

Neste ponto o initComponents(); também está duplicado e a minha sugestão é alterar assim:

public frmLogin() {
    initComponents();
    setResizable(false);
    this.setType(java.awt.Window.Type.UTILITY);
    centralizarComponente();

    con = cb.conexao("jdbc:postgresql://localhost:5432/bd_factoring","postgres","9j#d2!&_A0");
    if (con == null) {
        System.exit(0);
    }

}

Se me permitir, sugiro a visualização do vídeo do colega Paulo Perrone no Youtube que demonstra como fazer uma tela de login com acesso para a tela principal do sistema.
https://www.youtube.com/watch?v=OfsCClnnY6U
Abraços

valeu vou fazer as alteracoes, depois entro em contato. obrigado

Cara, eu passei o código pra vc conectar, vc testou ao menos? Vi que comentou agora em um outro tópico que não conseguiu.

Vou te passar um exemplo, vc só precisa mudar TRES COISAS:::::

Troca onde tá “seu_banco”, pelo nome do seu banco,
usuario: seu usuario,
senha: sua senha.

NAO TEM ERRO BROTHER

    private final String caminho = "jdbc:postgresql://localhost:5432/seu_banco";// responsável por setar o local do banco de dados
    private String usuario = "seu_usuario";
    private String senha = "sua_senha";

Código:

import java.sql.*;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class ConectaBanco {

    public Statement stm;// responsável por preparar e realizar pesquisas no banco de dados

    public ResultSet rs;//  responsável por armazenar o resultado de uma pesquisa passada para o Statement
    private final String driver = "org.postgresql.Driver";// responsável por identificar o serviço de banco de dados
    private final String caminho = "jdbc:postgresql://localhost:5432/seu_banco";// responsável por setar o local do banco de dados
    private String usuario = "seu_usuario";
    private String senha = "sua_senha";

    public Connection conn; // responsável por realizar a conexão com o banco de dados

    public void conexao() { //Metodo Responsável por realizar a conexão com o banco
        try {// tentativa inicial
            Class.forName(driver);
            conn = DriverManager.getConnection(caminho, usuario, senha); // realiza a conexão com o banco de dados
            //JOptionPane.showMessageDialog (null, "Conectado com Sucesso ao Banco de Dados!"); // imprime uma caixa de mensagens
            System.out.println("Conectado"); // imprime uma caixa de mensagens
        } catch (SQLException ex) { // excessão
            System.out.println("Erro ao conectar");
            Logger.getLogger(ConectaBanco.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(ConectaBanco.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void executaSQL(String sql) {
        try {
            stm = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            rs = stm.executeQuery(sql);
        } catch (SQLException ex) {
            //JOptionPane.showMessageDialog (null, "Erro de ExecutaSQL!\n Erro:" + ex.getMessage());
        }
    }

    public void desconecta() {//metodo para fechar a conexão com o banco de dados
        try {
            conn.close(); //fecha a conexão
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao fechar a conexão!\n Erro:" + ex.getMessage());
        }

    }
    
    public static void main(String[] args) {
        new ConectaBanco().conexao();
    }

}

boa noite abner, eu testei como vc me mandou deu o mesmo erro, eu acredito que seja a minha maquina, estou usando o windows7 e de uns tempo para cá ele nao abre o firewall de jeito nenhum, vou fazer um teste na maquina do meu genro que é nova e windows 10 depois eu retorno, desde de já agradeço sua grande atenção, estou testando,. blz

Qual é o erro?

o mesmo erro que nao localizou o driver, já adicionei na libraries, como disse amanhã vou testar na maquina do meu genro. erro Classform=“org.postgresql.Driver”, boa noite e obrigado mais uma vez

java.lang.ClassNotFoundException: org.postgresql.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:291)
at DAO.ConectaBd.conexao(ConectaBd.java:24)
at financeiro.frmLogin.(frmLogin.java:33)
at financeiro.Financeiro.main(Financeiro.java:19)

o erro continua, instalei em outra maquina zerada com o windows10 e deu o mesmo erro tambem.
pode me ajudar fazendo um grande favor

Você tem certeza que colocou o Driver? Tira um print mostrando o driver na biblioteca!

deixa eu te fazer uma pergunta, onde adiciono o driver corretamente no netbeans? acredito que estou adicionando no lugar errado.

Se aí estiver em português, vai ser:

1-Bibliotecas,
2-Adicionar Biblioteca
3-Procura a biblioteca do postgresql, e aperta em adicionar biblioteca

1 - image
2 - image
3 - image

isso mesmo, ai que estou adicionando

se vc tiver o teamviewer ai eu libero para vc entrar na minha maquina para vc ver

Não precisa, tira print e manda aqui!