[RESOLVIDO]jtextfield c/ String não salva alteração "banco" ,,,, mas o jtextfieldint ele salva

8 respostas
F

Dados: Netbeans 6.9.1 – Sql Server 2008

Pessoal, tenho uma jtable que quando clico na linha, eu jogo todas as informações dessa linha ( codigo, nome, rg ) em todos os respectivos campos ( jtextfield, jcombobox, etc ).

Trecho do código onde Jogo os valores de uma linha da table nos campos

private void jTablePessoaFisicaMouseClicked(java.awt.event.MouseEvent evt) {                                                

        desabilitar_campos();

        if(jTablePessoaFisica.getSelectedRow() != -1) {
       jtPes_Codigo.setText(String.valueOf(jTablePessoaFisica.getModel().getValueAt(jTablePessoaFisica.getSelectedRow(),0)));
       jtPes_Nome.setText(String.valueOf(jTablePessoaFisica.getModel().getValueAt(jTablePessoaFisica.getSelectedRow(), 1)));
       jftPes_Telefone1.setText(String.valueOf(jTablePessoaFisica.getModel().getValueAt(jTablePessoaFisica.getSelectedRow(), 2)));

No entanto, ao “Editar” e “Salvar” os valores desses campos, somente os campos em “int” salvam a alteração… os campos com “String” não salvam.

Botão Salvar

private void jbPes_SalvarActionPerformed(java.awt.event.ActionEvent evt) {                                             
       try{
           {
              ...
                  }
                 
          if(preencher_objeto()){
                    PessoaFisicaDAO PFDAO = new PessoaFisicaDAO();
                    PFDAO.AlterarPessoaFisica(objPessoa, objPessoaFisica);
                    limpar_campos();
                    desabilitar_campos();
                 }
                else{
                    JOptionPane.showMessageDialog(null,"Não foi possível alterar ! ");
                }
           }        
        }catch(Exception erro){
            JOptionPane.showMessageDialog(null,"Erro ao Salvar inclusão ou alteração : "+erro.getMessage());
        }
}

Trecho do código que “preenche o objeto”

private boolean preencher_objeto(){

        try{
        objPessoa = new Pessoa();
        //objPessoa.setCodigo(Integer.parseInt(jtPes_Codigo.getText()));
        objPessoa.setNome(jtPes_Nome.getText());
        objPessoa.setTelefone1(Integer.parseInt(jftPes_Telefone1.getText()));
        objPessoa.setTelefone2(Integer.parseInt(jftPes_Telefone2.getText()));
        objPessoa.setLogradouro(jtPes_Logradouro.getText());
        objPessoa.setNumero(jtPes_Numero.getText());

Método que altera na classe DAO

public boolean AlterarPessoaFisica(Pessoa objPessoa, PessoaFisica objPessoaFisica) throws SQLException{

        Conexao conexao = new Conexao();

    PreparedStatement pstmt = conexao.getConexao().prepareStatement(
    " update pessoa set nome = ?, telefone1 = ?, telefone2 = ?, logradouro = ?, numero = ?, complemento = ?, bairro = ?,"
            + " cep = ?,  cidade = ?, uf = ?, pais = ?, email = ?, tipopessoa = ?  where codigo = ? "+
    " update pessoafisica set cpf = ?, rg = ?, sexo = ?, datanascimento = ?, salario = ?, cargo = ?, escolaridade = ?, "
            + "doenca = ?, deficiencia = ?, observacoes = ?, tipopessoafisica = ?  "
            + " where exists (select * from pessoa, pessoafisica where pessoafisica.codigo = pessoa.codigo )  ");

    
    pstmt.setString(1, objPessoa.getNome());
    pstmt.setInt(2, objPessoa.getTelefone1());
    pstmt.setInt(3, objPessoa.getTelefone2());
    pstmt.setString(4, objPessoa.getLogradouro());
    pstmt.setString(5, objPessoa.getNumero());
    pstmt.setString(6, objPessoa.getComplemento());
    pstmt.setString(7, objPessoa.getBairro());
    pstmt.setInt(8, objPessoa.getCep());
    pstmt.setString(9, objPessoa.getCidade());
    pstmt.setString(10, objPessoa.getUf());
    pstmt.setString(11, objPessoa.getPais());
    pstmt.setString(12, objPessoa.getEmail());
    pstmt.setString(13, objPessoa.getTipopessoa());
    pstmt.setInt(14, objPessoa.getCodigo());
    pstmt.setInt(15, objPessoaFisica.getCpf());
    pstmt.setInt(16, objPessoaFisica.getRg());
    pstmt.setString(17, objPessoaFisica.getSexo());
    pstmt.setString(18, objPessoaFisica.getDatanascimento());
    pstmt.setDouble(19, objPessoaFisica.getSalario());
    pstmt.setString(20, objPessoaFisica.getCargo());
    pstmt.setString(21, objPessoaFisica.getEscolaridade());
    pstmt.setString(22, objPessoaFisica.getDoencas());
    pstmt.setString(23, objPessoaFisica.getDeficiencia());
    pstmt.setString(24, objPessoaFisica.getObservacoes());
    pstmt.setString(25, objPessoaFisica.getTipopessoafisica());
    
System.out.println("5");
   int registros = pstmt.executeUpdate();
System.out.println("6");   
   
    if(registros == 1){
        return true;

    }
    else
       return false;
        
}

8 Respostas

montroni

Vou dar uma sugestão pra você que para facilitar sua vida passe a utilizar o ObjectTableModel que se não me engano foi desenvolvido pelo MarkAmeba e pelo ViniGodoy mas nao tenho certeza tem vários exemplos ai no forum e é muito funcional porque voce não irá mais precisar utilizar aquelas linhas de getselectedrow e fazer o preenchimento manual e para ajudar no seu problema voce pode falar qual o campo que da o problema porque nao ficou claro no exemplo acima !

Abraços

F

o campo “nome” não aceita salvar alteração.

Obs: o botão salvar salva uma nova inclusão mas não pega do jtextfield a alteração.

montroni

Coloca a seguinte linha depois do pstmt no metodo alterar pessoa fisica

System.out.println(objPessoa.getnome())

para ver o seu conteúdo porque possivelmente este valor deve estar vindo de forma incorreta

F

O objeto está pegando a alteração corretamente do nome.

F

O getCodigo do objetoPessoa estava comentado porque eu deixei identity no banco… mas ao “descomentar” percebi que havia necessidade de mesmo assim pegar.

Anime

Oi,

Qual é o erro, imprima o StackTrace…

catch(SQLException erro) {
    JOptionPane.showMessageDialog(null,"Erro,ao listar");
    erro.printStackTrace(); //isso vai imprimir a pilha de exceções no console, indicando, dentre outras informacoes, a linha que deu problema.
}
F

Obrigado fera, já te falo o que deu,

também sou daqui de São José do Rio Preto

Anime

fernandom:
Obrigado fera, já te falo o que deu,

também sou daqui de São José do Rio Preto

Por nada… :stuck_out_tongue:

Criado 7 de março de 2011
Ultima resposta 8 de mar. de 2011
Respostas 8
Participantes 3