Problema com lançamento de Erro de Cadastro

6 respostas
A
Boa tarde galera...esou com um probleminha aqui que não parece ser tão complexo, mas nao to conseguindo resolver...é o seguinte.: No meu método de cadastrar da Regra de Negocio, tem um execção que verifica se o cliente ja existe, caso exista ele lança a exeçção, mas mesmo assim, o cara existindo no banco de dados ele aparece em Tempo de execução ja JTable, ai sempre que fecho e abro a aplicação ele some, a duvida é..por que ele aparece na JTable mesmo depois da validação?????? MÉTODO
public void cadastrarContato(String nome , String idade , String telefone) throws SQLException{
              String val = "Anderson";
               if( nome == val){
                   JOptionPane.showMessageDialog(null,"Cliente ja cadastrado no Banco de Dados");//ESSA ESCEÇÃO QUE ERA PRA SER LANÇADO CASO O NOME DIGITADO FOSSE ANDERSON
               }else if(nome != val){
		Contato cont = new Contato(nome,idade,telefone);
                contatoDAO cDAO = new contatoDAO();
		cDAO.inserir(cont);
               }
	}
BOTAO CADASTRAR
private void bt_cadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                             

        if((evt.getSource() == bt_cadastrar) && (verificarDados())){
            ContatoNegocio cont = new ContatoNegocio();
            ContatoTableModel modelo = (ContatoTableModel)tabela.getModel();
            contatoDAO dao = new contatoDAO();
            
            // Contato Criado para utilizar no tablemodel, para que ele
            // possa indentificar o novo contato
            Contato contato = new Contato(tf_nome.getText() , tf_idade.getText() , tf_telefone.getText());
            try {
                
                cont.cadastrarContato(contato.getNome(),contato.getIdade(),contato.getTelefone());
                int num = dao.buscaID(contato.getNome());
                contato.setIdusuario(num);
                modelo.add(contato);
               
                
                
            } catch (SQLException ex) {
                Logger.getLogger(ContatoFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            limparCampos();
                
            
        }
    }

6 Respostas

A

Ola Anderson, a reposta para a sua pergunta esta nesse trecho de código:

cont.cadastrarContato(contato.getNome(),contato.getIdade(),contato.getTelefone()); int num = dao.buscaID(contato.getNome()); contato.setIdusuario(num); modelo.add(contato);

Você tenta inserir um contato e verifica se ele existe até ai tudo bem, mas o problema é que se ele existir você simplesmente mostra uma mensagem e continua a execução por isso mesmo ele existindo no banco você o adiciona no seu TableModel.

Você deveria lançar uma exception ou executar algum tratamento para que a execução não continue e ele não adicione o contato no seu tabelmodel.

Acho que é isso :wink:

A

Certo…Mas eu lançei a execção no controller vc reparou???
lá é o mais certo não??? e como implementa essa sua sugestão???

WendersonLP
public void cadastrarContato(String nome , String idade , String telefone) throws SQLException
{  
                String val = "Anderson";  
                if (nome.equals(val))
                {  
                  //ESSA É UMA MANEIRA
                  new throw SQLException("Cliente ja cadastrado no Banco de Dados");
                }
                else if(nome != val)
                {  
                      Contato cont = new Contato(nome,idade,telefone);  
                      contatoDAO cDAO = new contatoDAO();  
                      cDAO.inserir(cont);  
               }  
   }
lina

Anderson S.:
Certo…Mas eu lançei a execção no controller vc reparou???
lá é o mais certo não??? e como implementa essa sua sugestão???

Oi,

Para comparação entre String, utiliza-se equals e não ==

Só modifique isso em seu IF.

Tchauzin!

A

Certo lina, ele faz a comparação perfeitamente, mas ele insere no modelo o dado comparadado caso ele ja esteja cadastrado…ai uando fecho e abro a aplicação ele nao está lá…mas enquanto nao fecho ele continua lá…esse é o problema…

A

WendersonLP:
public void cadastrarContato(String nome , String idade , String telefone) throws SQLException { String val = "Anderson"; if (nome.equals(val)) { //ESSA É UMA MANEIRA new throw SQLException("Cliente ja cadastrado no Banco de Dados"); } else if(nome != val) { Contato cont = new Contato(nome,idade,telefone); contatoDAO cDAO = new contatoDAO(); cDAO.inserir(cont); } }

Essa sua solução nao deu certo…ta pedindo pra mim criar o método SQLException

Criado 29 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 6
Participantes 4