[Resolvido] Problema de Swing com Banco de Dados

5 respostas
desk

Olá pessoal, estou tentando fazer 1 programinha estilo programas comerciais, controle de estoque no caso. Estou querendo que adicione produtos ao banco de dados, de update, delete, etc. mais está dando um erro. Logo quando mando rodar, ele ja abre o joptionpane dizendo que não foi possivel achar o driver. segue abaixo o codigo
OBS: Estou usando o Netbeans 6.7.1

package br.com.desk.modelos;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class Estoque extends javax.swing.JFrame {

    private String nome, preco, tamanho, cor, garantia, familia ;
    private String sql = "INSERT INTO produtos (nome, preco, tamanho, cor, garantia, familia) values (?, ?, ?, ?, ?, ?) ;" ;
    private String consulta = "SELECT nome FROM produtos WHERE nome = ? ;";

    public Estoque() {
        try {
           Class.forName("com.mysql.jdbc.Driver") ;
        }
        catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Não foi possivel achar o Driver.") ;
            System.exit(1) ;
        }
         initComponents();
    }

    public boolean cadastrar(String nome, String preco, String tamanho, String cor, String garantia, String familia) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver") ;
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/c_estoque", "root", "root") ;

        PreparedStatement consultar = conn.prepareStatement(consulta) ;
        consultar.setString(1, nome) ;
        ResultSet rs = consultar.executeQuery() ;

        if (rs.next()) {
            return false ;
        }

        else {
            PreparedStatement instrucao = conn.prepareStatement(sql) ;
            instrucao.setString(1, nome) ;
            instrucao.setString(2, preco) ;
            instrucao.setString(3, tamanho) ;
            instrucao.setString(4, cor) ;
            instrucao.setString(5, garantia) ;
            instrucao.setString(6, familia) ;

            int r = instrucao.executeUpdate() ;
            instrucao.close() ;
            conn.close() ;

            return r == 1 ? true : false ;
        }
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        pnlConteudo = new javax.swing.JPanel();
        pnlBotoes = new javax.swing.JPanel();
        btnNovo = new javax.swing.JButton();
        btnExcluir = new javax.swing.JButton();
        btnProcurar = new javax.swing.JButton();
        btnSair = new javax.swing.JButton();
        lblProduto = new javax.swing.JLabel();
        lblPreco = new javax.swing.JLabel();
        lblTamanho = new javax.swing.JLabel();
        lblCor = new javax.swing.JLabel();
        lblGarantia = new javax.swing.JLabel();
        lblFamilia = new javax.swing.JLabel();
        lblId = new javax.swing.JLabel();
        txtProduto = new javax.swing.JTextField();
        txtPreco = new javax.swing.JTextField();
        txtTamanho = new javax.swing.JTextField();
        txtCor = new javax.swing.JTextField();
        txtGarantia = new javax.swing.JTextField();
        txtFamilia = new javax.swing.JTextField();
        txtId = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblInfo = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Controle de Estoque - by desk");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        pnlConteudo.setBackground(new java.awt.Color(204, 204, 204));
        pnlConteudo.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 153, 153)));

        pnlBotoes.setBackground(new java.awt.Color(204, 204, 204));

        btnNovo.setIcon(new javax.swing.ImageIcon("C:\\Users\\DesK\\Documents\\icones\\add_16x16.gif")); // NOI18N
        btnNovo.setText("Cadastrar");
        btnNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoActionPerformed(evt);
            }
        });

        btnExcluir.setIcon(new javax.swing.ImageIcon("C:\\Users\\DesK\\Documents\\icones\\delete_16x16.gif")); // NOI18N
        btnExcluir.setText("  Excluir   ");

        btnProcurar.setIcon(new javax.swing.ImageIcon("C:\\Users\\DesK\\Documents\\icones\\zoom_16x16.gif")); // NOI18N
        btnProcurar.setText("Procurar");
        btnProcurar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProcurarActionPerformed(evt);
            }
        });

        btnSair.setIcon(new javax.swing.ImageIcon("C:\\Users\\DesK\\Documents\\icones\\disconnect2_16x16.gif")); // NOI18N
        btnSair.setText("  Sair      ");
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout pnlBotoesLayout = new javax.swing.GroupLayout(pnlBotoes);
        pnlBotoes.setLayout(pnlBotoesLayout);
        pnlBotoesLayout.setHorizontalGroup(
            pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlBotoesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnSair)
                    .addComponent(btnExcluir)
                    .addComponent(btnProcurar)
                    .addComponent(btnNovo))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pnlBotoesLayout.setVerticalGroup(
            pnlBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlBotoesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(btnNovo)
                .addGap(58, 58, 58)
                .addComponent(btnExcluir)
                .addGap(68, 68, 68)
                .addComponent(btnProcurar)
                .addGap(66, 66, 66)
                .addComponent(btnSair)
                .addContainerGap(56, Short.MAX_VALUE))
        );

        lblProduto.setText("Produto:    ");

        lblPreco.setText("Preço:     ");

        lblTamanho.setText("Tamanho: ");

        lblCor.setText("Cor:          ");

        lblGarantia.setText("Garantia:   ");

        lblFamilia.setText("Família:    ");

        lblId.setText("Id:     ");

        tblInfo.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "ID", "Nome", "Preço", "Cor", "Família"
            }
        ));
        jScrollPane1.setViewportView(tblInfo);

        javax.swing.GroupLayout pnlConteudoLayout = new javax.swing.GroupLayout(pnlConteudo);
        pnlConteudo.setLayout(pnlConteudoLayout);
        pnlConteudoLayout.setHorizontalGroup(
            pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlConteudoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 305, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlConteudoLayout.createSequentialGroup()
                        .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlConteudoLayout.createSequentialGroup()
                                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(lblGarantia)
                                    .addComponent(lblFamilia)
                                    .addComponent(lblId))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(txtFamilia, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)
                                    .addComponent(txtId, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)
                                    .addComponent(txtGarantia, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlConteudoLayout.createSequentialGroup()
                                    .addComponent(lblCor)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(txtCor))
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlConteudoLayout.createSequentialGroup()
                                    .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(lblTamanho)
                                        .addComponent(lblProduto)
                                        .addComponent(lblPreco))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(txtTamanho)
                                        .addComponent(txtPreco)
                                        .addComponent(txtProduto, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE)))))
                        .addGap(58, 58, 58)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(pnlBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        pnlConteudoLayout.setVerticalGroup(
            pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnlBotoes, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(pnlConteudoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblProduto)
                    .addComponent(txtProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(12, 12, 12)
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtPreco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lblPreco))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(lblTamanho)
                    .addComponent(txtTamanho, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(lblCor)
                    .addComponent(txtCor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(lblGarantia)
                    .addComponent(txtGarantia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(lblFamilia)
                    .addComponent(txtFamilia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(pnlConteudoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(lblId)
                    .addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(62, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnlConteudo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnlConteudo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

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

    private void formWindowClosing(java.awt.event.WindowEvent evt) {                                   

    }                                  

    private void btnProcurarActionPerformed(java.awt.event.ActionEvent evt) {                                            

    }                                           

    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {                                        
        System.exit(0);
    }                                       

    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {                                        

    }                                       

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Estoque().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton btnExcluir;
    private javax.swing.JButton btnNovo;
    private javax.swing.JButton btnProcurar;
    private javax.swing.JButton btnSair;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel lblCor;
    private javax.swing.JLabel lblFamilia;
    private javax.swing.JLabel lblGarantia;
    private javax.swing.JLabel lblId;
    private javax.swing.JLabel lblPreco;
    private javax.swing.JLabel lblProduto;
    private javax.swing.JLabel lblTamanho;
    private javax.swing.JPanel pnlBotoes;
    private javax.swing.JPanel pnlConteudo;
    private javax.swing.JTable tblInfo;
    private javax.swing.JTextField txtCor;
    private javax.swing.JTextField txtFamilia;
    private javax.swing.JTextField txtGarantia;
    private javax.swing.JTextField txtId;
    private javax.swing.JTextField txtPreco;
    private javax.swing.JTextField txtProduto;
    private javax.swing.JTextField txtTamanho;
    // End of variables declaration                   

}

5 Respostas

ambrozio

Coloque isso asim, voce deve abrir o banco no inicio do programa.

public class Estoque extends javax.swing.JFrame {

private String nome, preco, tamanho, cor, garantia, familia ;

private String sql = “INSERT INTO produtos (nome, preco, tamanho, cor, garantia, familia) values (?, ?, ?, ?, ?, ?) ;” ;

private String consulta = “SELECT nome FROM produtos WHERE nome = ? ;”;

public Estoque() {

......
        Class.forName("com.mysql.jdbc.Driver") ;

Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost/c_estoque”, “root”, “root”) ;

PreparedStatement consultar = conn.prepareStatement(consulta) ;

consultar.setString(1, nome) ;

ResultSet rs = consultar.executeQuery() ;

if (rs.next()) {

return false ;

}

.........

try {

Class.forName(“com.mysql.jdbc.Driver”) ;

}

catch (Exception e) {

JOptionPane.showMessageDialog(this, “Não foi possivel achar o Driver.”) ;

System.exit(1) ;

}

initComponents();

}

lina

Oi,

O erro acontece pois não foi possível localizar o driver utilizando este caminho (O caminho está correto):

Verifique se realmente existe o driver do DB em jre\lib\ext

Tchauzin!

desk

Olá gente, tentei o que vocês falaram, e não consegui. Ambrozio, fiz do jeito que vc mostrou, mais então tenque botar os throws depois do # public Estoque(), eu coloquei, mais depois pra inicializar não inicializava. Você testou aí?

lina, eu vi no diretorio, e tem sim o mysql_connector. Não sei porque não está achando o Driver.

zoren

O driver está nas bibliotecas do IDE??

O NetBeans já vem com um driver, é só adiciona-lo ao seu projeto

desk

Obrigado a todos, consegui como o zoren falou,
Obrigado cara :slight_smile:

Criado 12 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 5
Participantes 4