to meio confuso em relacao ao retorno desse método, gostaria de saber qdo ele retorna true e false.
Dúvida com método next()
9 Respostas
Se vc está falando do método next() da classe ResultSet, ele retorna um boolean.
TRUE -> se houverem ainda registros a serem percorridos no retorno de sua consulta.
FALSE -> se não houverem mais registros a serem percorridos no retorno de sau consulta.
poeo q vc ta tentando fazer ai…
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. 
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;
}
}
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.
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 ?
Sim, mas no seu caso teria algo errado, pois vc não deveria permitir que existissem dois usuários iguais
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 ?
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. 