Matar um metodo

4 respostas
uchiharussi

Ola pessoal.

Seguinte, tenho minha tabela no banco de dados, porem, minha unica PK eh o id, e alem do id, quero tambem que o login nao se repita, mas nao quero tratar essa variavel como PK, entao estou fazendo o codigo no netbeans, mas preciso de um comando que nao execute o restante do metodo, caso o login se repita, para isso estou fazendo assim:

private void botaocadastrarActionPerformed(java.awt.event.ActionEvent evt) { Login login = new Login(); List<controletecnico.classes.Login> listaLogin = controle.findLoginEntities(); for (int i = 0; i < listaLogin.size(); i++) { if (textologin.getText().equalsIgnoreCase(listaLogin.get(i).getLogin())) { int op = JOptionPane.showOptionDialog(this, "Esse login ja existe, oque deseja fazer?!", "Erro", JOptionPane.DEFAULT_OPTION, JOptionPane.YES_NO_OPTION, null, opcoes1, opcoes1[0]); if (op == 1) { textologin.setText(""); textologin.requestFocus(); } else { this.limpatela(); } } else { if (textosenha.getText().equalsIgnoreCase(textosenha2.getText())) { try { login.setLogin(textologin.getText()); login.setNome(textonome.getText()); login.setSenha(textosenha.getText()); login.setTipo(textotipo.getText()); controle.create(login); } catch (PreexistingEntityException ex) { Logger.getLogger(FormularioCadastroLogin.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(FormularioCadastroLogin.class.getName()).log(Level.SEVERE, null, ex); } int op1 = JOptionPane.showOptionDialog(this, "Deseja cadastrar mais algum Usuario ?", "Confirmacao", JOptionPane.DEFAULT_OPTION, JOptionPane.YES_NO_OPTION, null, opcoes, opcoes[0]); if (op1 == 0) { this.limpatela(); } else { setVisible(false); if (fp == null) { fp = new FormularioPrincipal(); fp.setVisible(true); } } } else { JOptionPane.showMessageDialog(this, "As senhas digitadas sao diferentes", "Erro", JOptionPane.ERROR_MESSAGE); textosenha.setText(""); textosenha2.setText(""); textosenha.requestFocus(); } } } }

Mas nao da certo, pq ele vai fazer todo o [color=blue]for[/color]. Entao precisava matar o metodo quando o sistema verifica que o login se repete. Sera que alguem pode me ajudar??

Valeuuu

4 Respostas

L

Coloca um break quando achar um login repetido, ai ele sai do for e como não tem nenhuma implementação depois do for ele termina a execução do método.

B

Não seria mais fácil fazer uma consulta no banco procurando pro logins com aquele nome, em vez de trazer todos os nome e comparar um a um?

De qualquer forma, faça um método chamado loginExists, passando o nome e retornando um true se já existir, daí faça um if (loginExists(nome)) para checar isto. Vai te ajudar a organizar o teu código e encontrar uma solução ótima.

uchiharussi

Ta e como se da um break?

j0nny
break;

Coloque isso dentro do teu laço.

Criado 4 de março de 2010
Ultima resposta 4 de mar. de 2010
Respostas 4
Participantes 4