Salvar em banco de dados AJUDA![RESOLVIDO]

5 respostas
psyhclo
Estou tentando salvar os dados em um BD que eu pego de um JFrame. Dai eu tenho a classe Pessoa e a classe PessoaDAO: SO que nao estao inserindo nada e da um erro, se puderem me ajudar. Aqui esta o formulario JFrame:
public class cadastra_gerente extends javax.swing.JFrame {
    
    private Pessoa pessoa;
    private PessoaDAO pessoaDAO;

    /** Creates new form cadastra_gerente */
    public cadastra_gerente() {
        initComponents();
        pessoa = new Pessoa(); 
        pessoaDAO = new PessoaDAO();
    }
private void BtnEnviarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    if (!validaComponentes()) {
        return;
    }
    pessoa.setNome(TxtNome.getText());
    pessoa.setEmail(TxtEmail.getText());
    pessoaDAO.salvar(pessoa);
    JOptionPane.showMessageDialog(null, "Pessoa "+pessoa.getNome()+ " cadastrada com sucesso.");
    
    
}                                         

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

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new cadastra_gerente().setVisible(true);
            }
        });
    }
    private boolean validaComponentes() {
        if (TxtNome.getText() == null || TxtNome.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Erro. Entre com o nome do funcionario");
            return false;
        }
        return true;
    }

    // Variables declaration - do not modify
    private javax.swing.JButton BtnCancelar;
    private javax.swing.JButton BtnEnviar;
    private javax.swing.JTextField TxtEmail;
    private javax.swing.JTextField TxtNome;
    private javax.swing.JTextField TxtNumero;
    private javax.swing.JTextField TxtRua;
    private javax.swing.JTextField TxtTelefone;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.ButtonGroup buttonGroup3;
    private javax.swing.ButtonGroup buttonGroup4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollBar jScrollBar1;
    private javax.swing.JTextField jTextAdmissao;
    private javax.swing.JTextField jTextBairro;
    private javax.swing.JTextField jTextCep;
    private javax.swing.JTextField jTextCidade;
    private javax.swing.JTextField jTextCompl;
    private javax.swing.JTextField jTextCpf;
    private javax.swing.JTextField jTextEstado;
    // End of variables declaration

    

}

Aqui esta a classe PessoaDao

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Roger
 */
public class PessoaDAO { 
    
    private Connection conn;
    private String usuario = "roger";
    private String senha = "roger";
    private Pessoa pessoa;
    
    public PessoaDAO() {  
            try {  
                Class.forName("org.apache.derby.jdbc.ClientDriver");  
                conn = DriverManager.getConnection("jdbc:derby://localhost:1527/empresa",usuario,senha);  
                conn.setAutoCommit(true);
            } catch (SQLException e) {  
                System.err.println("Erro: "+e);  
                conn = null;  
                e.printStackTrace();  
            } catch (ClassNotFoundException e) {  
                System.out.println("ClassNotFound...");  
                e.printStackTrace();  
            }  
    }   
       
    
    public void salvar(Pessoa pessoa) {
        try {
           
           
            String query = "Insert into FUNCIONARIO(ID,NOME,EMAIL,TELEFONE,RUA,NUMERO,COMPL,BAIRRO,CIDADE,ESTADO,CEP,ADMISSAO,CPF) values ('','TxtNome','TxtEmail','TxtTelefone','TxtRua','TxtNumero','TxtCompl','TxtBairro','TxtCidade','TxtEstado','TxtCep','TxtAdmissao','TxtCpf')";
            PreparedStatement p = conn.prepareStatement(query); 
            p.setInt(1,10);
            p.setString(1,pessoa.getNome());
            p.setString(1,pessoa.getEmail());
            p.setString(1,pessoa.getTelefone());
            p.setString(1,pessoa.getRua());
            p.setString(1,pessoa.getNumero());
            p.setString(1,pessoa.getCompl());
            p.setString(1,pessoa.getBairro());
            p.setString(1,pessoa.getCidade());
            p.setString(1,pessoa.getEstado());
            p.setString(1,pessoa.getCep());
            p.setString(1,pessoa.getAdmissao());
            p.setString(1,pessoa.getCpf());
            int quantos = p.executeUpdate();
            JOptionPane.showMessageDialog(null,"Atualizou "+quantos + " registros");
        } catch(Exception e) {
            JOptionPane.showMessageDialog(null,e);
        }
    } 
}
Agora a Classe Pessoa:
public class Pessoa {
       private String nome;//atributos
       private String email;
       private String telefone;
       private String rua;
       private String numero;
       private String compl;
       private String bairro;
       private String cidade;
       private String estado;
       private String cep;
       private String admissao;
       private String cpf;
       
       public Pessoa() {
           super();
       }
       
       public String getNome(){//metodo acessor
        return this.nome;
       }
       public void setNome(String nom){//metodo modificador
        this.nome=nom;
       }
       public String getEmail(){//metodo acessor
        return this.email;
       }
       public void setEmail(String mail){//metodo modificador
        this.email = mail;
       }
       public String getTelefone(){//metodo acessor
        return this.telefone;
       }
       public void setTelefone(String tel){//metodo modificador
        this.telefone=tel;
       }
       public String getRua(){//metodo acessor
        return this.rua;
       }
       public void setRua(String ru){//metodo modificador
        this.rua=ru;
       }
       public String getNumero(){//metodo acessor
        return this.numero;
       }
       public void setNumero(String num){//metodo modificador
        this.numero=num;
       }
       public String getCompl(){//metodo acessor
        return this.compl;
       }
       public void setCompl(String com){//metodo modificador
        this.compl=com;
       }
       public String getBairro(){//metodo acessor
        return this.bairro;
       }
       public void setBairro(String bai){//metodo modificador
        this.bairro=bai;
       }
       public String getCidade(){//metodo acessor
        return this.cidade;
       }
       public void setCidade(String cid){//metodo modificador
        this.cidade=cid;
       }
       public String getEstado(){//metodo acessor
        return this.estado;
       }
       public void setEstado(String est){//metodo modificador
        this.estado=est;
       }
       public String getCep(){//metodo acessor
        return this.cep;
       }
       public void setCep(String ce){//metodo modificador
        this.cep=ce;
       }
       public String getAdmissao(){//metodo acessor
        return this.admissao;
       }
       public void setAdmissao(String admis){//metodo modificador
        this.admissao=admis;
       }
       public String getCpf(){//metodo acessor
        return this.cpf;
       }
       public void setCpf(String cp){//metodo modificador
        this.cpf=cp;
       }

    
}

Se puderem me dar uma dica de como fazer isso funcionar, , e eu queria tbm q ele gerasse um id automaticamente, tipo aleatorio, e q tbm ele fosse auto increment, desde ja agradeço. Obrigado.

5 Respostas

ManoJava

Posta o erro ai pra gente analisar!

psyhclo

Então o erro e que não estao conseguindo inserir os dados no banco, e dai qdo eu clico em enviar ele emite o erro assim java.sql.SQL.SyntaxErrorException: As colunas do tipo ‘NUMERIC’ não podem conter valores do tipo ‘CHAR’.

E eu queria saber uma forma de gerar uma id para cada pessoa cadastrada, so que automaticamente e fosse auto increment, se souberem uma forma de fazer, agradeço. Obrigado

psyhclo

alguem mais pode ajudar??

phmjunior

não sei c vai ajudar, mas segue sugestão.

no teu insert tira os parametros txt* e substirui por ? uma vez q vc já setou os valores q serão recebidos.

tiagobernardo32

Substitua o Codigo:

String query = "Insert into FUNCIONARIO(ID,NOME,EMAIL,TELEFONE,RUA,NUMERO,COMPL,BAIRRO,CIDADE,ESTADO,CEP,ADMISSAO,CPF) values ('','TxtNome','TxtEmail','TxtTelefone','TxtRua','TxtNumero','TxtCompl','TxtBairro','TxtCidade','TxtEstado','TxtCep','TxtAdmissao','TxtCpf')"; PreparedStatement p = conn.prepareStatement(query); p.setInt(1,10); p.setString(1,pessoa.getNome()); p.setString(1,pessoa.getEmail()); p.setString(1,pessoa.getTelefone()); p.setString(1,pessoa.getRua()); p.setString(1,pessoa.getNumero()); p.setString(1,pessoa.getCompl()); p.setString(1,pessoa.getBairro()); p.setString(1,pessoa.getCidade()); p.setString(1,pessoa.getEstado()); p.setString(1,pessoa.getCep()); p.setString(1,pessoa.getAdmissao()); p.setString(1,pessoa.getCpf()); int quantos = p.executeUpdate(); JOptionPane.showMessageDialog(null,"Atualizou "+quantos + " registros"); } catch(Exception e) { JOptionPane.showMessageDialog(null,e); }[

Por:

String query = "Insert into FUNCIONARIO(ID,NOME,EMAIL,TELEFONE,RUA,NUMERO,COMPL,BAIRRO,CIDADE,ESTADO,CEP,ADMISSAO,CPF) values (?,?,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatement p = conn.prepareStatement(query); p.setInt(1,10); p.setString(2,pessoa.getNome()); p.setString(3,pessoa.getEmail()); p.setString(4,pessoa.getTelefone()); p.setString(5,pessoa.getRua()); p.setString(6,pessoa.getNumero()); p.setString(7,pessoa.getCompl()); p.setString(8,pessoa.getBairro()); p.setString(9,pessoa.getCidade()); p.setString(10,pessoa.getEstado()); p.setString(11,pessoa.getCep()); p.setString(12,pessoa.getAdmissao()); p.setString(13,pessoa.getCpf()); int quantos = p.executeUpdate(); JOptionPane.showMessageDialog(null,"Atualizou "+quantos + " registros"); } catch(Exception e) { JOptionPane.showMessageDialog(null,e); }[

Criado 2 de outubro de 2009
Ultima resposta 9 de out. de 2009
Respostas 5
Participantes 4