Dúvida com método next()

9 respostas
M

to meio confuso em relacao ao retorno desse método, gostaria de saber qdo ele retorna true e false.

9 Respostas

Adriano_Almeida

Se vc está falando do método next() da classe ResultSet, ele retorna um boolean.

TRUE -&gt se houverem ainda registros a serem percorridos no retorno de sua consulta.

FALSE -&gt se não houverem mais registros a serem percorridos no retorno de sau consulta.

LPJava

poeo q vc ta tentando fazer ai…

L

Aconselho-te fortemente a olhar no Javadoc da classe que você está mexendo. Lá fala de maneira explicita isso e mais várias outras informações…por exemplo…do resultSet tah assim:

Returns:
true if the new current row is valid; false if there are no more rows

Mais claro que isso, impossível. :smiley:

M
estou fazendo um método de login , nesse caso logado era p/ ser true ou false ?
public boolean verificarUsuario(Usuario u) {
        
      boolean logado = false;
        
        try{
            
            String sql = "select matricula from T_Usuario where matricula = ? and cpf = ? ";
            
            PreparedStatement st = conn.prepareStatement(sql);
            
            st.setString(1, u.getMatricula());
            st.setString(2, u.getCpf());
            
          
            ResultSet rs = st.executeQuery();
            
          
            
            logado = rs.next();
           
            
             return logado;
        }catch (SQLException erro) {
            System.out.println(erro);
            return logado;
        }
       
    }
T

Se você tem certeza absoluta que a consulta retorna 1 ou 0 linhas (1 para usuário existente e senha correta , 0 em caso contrário) então next voltaria true se for 1 linha, e 0 se for 0 linhas. Mas pode ser que volte mais de uma linha - não sei se sua tabela está com os “constraints” corretos.

M

acho q vc quis dizer false se for o linhas ok ?
bem, e se a consulta retornar mais de uma linha ele continuará retornando true ?

Romeo

Sim, mas no seu caso teria algo errado, pois vc não deveria permitir que existissem dois usuários iguais

M

a tá entendi, mas isso não irá acontecer, até pq os campos são cpf e matricula, os quais diferem obrigatoriamente entre os usuários.

agora já que vc tocou no assunto, tem vantagem em colocar restriçoes no banco ? não seria melhor colocar via programacao ?

1112

Tudo depende de como funcionam as coisas entre sua aplicação e o banco. Se existir mais de uma aplicação (especialmente se for em uma linguagem diferente) usando o banco, é melhor deixar as restrições no banco, senão você duplica código. Se a sua aplicação acessa o banco através de múltiplas instâncias, você deve controlar aspectos como concorrência.

Mas é claro que detalhes de regras de negócio devem ser controlados pela sua aplicação.

O segredo é usar o bom senso. :wink:

Criado 3 de março de 2007
Ultima resposta 5 de mar. de 2007
Respostas 9
Participantes 7