Testar Igualdade antes da Persistência?

4 respostas
T

Bom Pessoal, É o seguinte
Meu Software tem um cadastro de Usuarios, Nele se cadastra o basico:
Usuario, Login, Senha, Nome
Porém agr entrei em um problema, É o seguinte, preciso evitar a repetição dentro do sistema de Usuarios, Ou seja, Antes de realizar a persistencia testar em todos os Usuarios ja cadastrados, Se nenhum deles é igual ao que a pessoa esta tentando cadastrar AGORA…
Meu codigo do cadastro,Formulario e ClasseDAO:

ClasseUsuario u = new ClasseUsuario();
            u.setUsuario(jTextField1.getText());
            u.setSenha(jTextField2.getText());
            u.setNome(jTextField3.getText());
            u.setCurso(jTextField4.getText());
            u.setTelefone(jTextField5.getText());
            u.setCelular(jTextField6.getText());


            BOM EXATAMENTE AQUI, JA PRECISO ANTES DE CHAMAR O METODO NA DAO, TESTAR SE O USUARIO QUE ELE ESTA TENTANDO INSERIR JA NÃO EXISTE NO BANCO, NA TABELA USUARIO 


            ClasseUsuarioDAO ud = new ClasseUsuarioDAO();
            ud.CadastrarUsuario(u);
DAO:
String sqlincluir = "Insert into Usuario(Usuario,Senha,Nome,Curso,Telefone,Celular)" + 
             "values(?,?,?,?,?,?)"; 
     PreparedStatement smt = conexao.prepareStatement(sqlincluir);
     smt.setString(1, a.getUsuario());
     smt.setString(2, a.getSenha());
     smt.setString(3, a.getNome());
     smt.setString(4, a.getCurso());
     smt.setString(5, a.getTelefone());
     smt.setString(6, a.getCelular());
     smt.executeUpdate();
     smt.close();
     conexao.close();

Deu pra entender? Bom, Se alguem souber um meio de realizar isso, Ficarei imensamente agradecido! :smiley:

4 Respostas

tiago.vt

Coloca o campo como UNIQUE, e quando for gravado um dado repetido ele vai dar uma exception e vc trata a exception que ele lança.

T
Bom tentei essa solução sua, E realmente funcionou! Muito obrigado ^^ E baseando em partes nessa solução, Criei uma maneira um tanto simples, Ja que toda a informação da tabela usuario ja esta em uma Grid minha do formulario, Eu simplismente fiz um Loop aqui testando todos os campos "Usuarios" desa grid e comparando com o Usuario que ele esta tentando introduzir... ficou mais o menos assim:
int b = 0;
            
            for (int i = 0; i <= jTable2.getRowCount() - 1; i++) {
                Object a = jTable2.getValueAt(i, 1);
                if (jTextField1.getText().equals(a)){
                b = 1;
                }

            }
               if (b == 1){
               JOptionPane.showMessageDialog(null, "Nome de Usuario ja existe no sistema!");  
               }else{
Executa os Codigos de Persistencia.

Bom fica aew tb pra quem tiver o mesmo problema hehe, Duas soluções (Y)

tiago.vt
thejaum:
Bom tentei essa solução sua, E realmente funcionou! Muito obrigado ^^ E baseando em partes nessa solução, Criei uma maneira um tanto simples, Ja que toda a informação da tabela usuario ja esta em uma Grid minha do formulario, Eu simplismente fiz um Loop aqui testando todos os campos "Usuarios" desa grid e comparando com o Usuario que ele esta tentando introduzir... ficou mais o menos assim:
int b = 0;
            
            for (int i = 0; i <= jTable2.getRowCount() - 1; i++) {
                Object a = jTable2.getValueAt(i, 1);
                if (jTextField1.getText().equals(a)){
                b = 1;
                }

            }
               if (b == 1){
               JOptionPane.showMessageDialog(null, "Nome de Usuario ja existe no sistema!");  
               }else{
Executa os Codigos de Persistencia.

Bom fica aew tb pra quem tiver o mesmo problema hehe, Duas soluções (Y)

Usando dessa maneira creio que vai fica mais lento, conforme sua lista ficar grande ele vai ter q percorre a lista inteira, imaginamos uma lista de 100 registro, vai ter que compara os 100 registros.

T

Hehe Ctz :stuck_out_tongue: , Bom foi por pura experiencia que tentei criar um metodo Alternativo hahahahaha
Ja implementei no meu software oque você ensinou hehe

Criado 6 de junho de 2012
Ultima resposta 6 de jun. de 2012
Respostas 4
Participantes 2