Metodos ResultSet

1 resposta
O

Gostaria de saber a diferença entre o metodo :
ResultSet.first();
ResultSet.next();

Sendo que pelo meu SQL só retorna um registro, ou seja nao preciso navegar..
Ex:
Select * from usuario where login = 'diego' and codUsuario = 2;

Obs: Pelo que entendi o metodo first() procura somente no primeiro registro e o next() sai varrendo ate o final...

No meu codigo se eu usar first() da erro.
Operação inválida para encaminhar apenas conjunto de resultados: first
e se usar next() tbem da erro.. ele nem entra.. Codigo:
public boolean verificaOperador(Operador ope) throws SQLException {

		PreparedStatement smtp = this.conexao
				.prepareStatement("select * from operador where login = ? and senha = ?");
		smtp.setString(1, ope.getLogin());
		smtp.setString(2, ope.getSenha());
		ResultSet rs = smtp.executeQuery();
		Operador operador = null;
		if (rs.first()) {
			operador = new Operador();
			operador.setCodOperador(Integer.parseInt(rs
					.getString("codigoOperador")));
			operador.setPerfil(Integer.parseInt(rs.getString("codPerfil")));
			operador.setLogin(rs.getString("login"));
			operador.setSenha(rs.getString("senha"));
		}
		smtp.close();
		rs.close();
		System.out.println(operador.getSenha().equals("123"));
		if (operador == null || !operador.getSenha().equals(ope.getSenha())) {
			return false;
		} else {
			return true;
		}
	}

A consulta esta correta pois eu testei no banco...

Obrigado..

1 Resposta

T
public boolean verificaOperador(Operador ope) throws SQLException {
 
 		PreparedStatement smtp = this.conexao
 				.prepareStatement("select * from operador where login = ? and senha = ?");
 		smtp.setString(1, ope.getLogin());
 		smtp.setString(2, ope.getSenha());
 		ResultSet rs = smtp.executeQuery();
 		Operador operador = null;
 		if (rs.next()) {
                        // o login existe e a senha está correta
 			operador = new Operador();
 			operador.setCodOperador(Integer.parseInt(rs
 					.getString("codigoOperador")));
 			operador.setPerfil(Integer.parseInt(rs.getString("codPerfil")));
 			operador.setLogin(rs.getString("login"));
 			operador.setSenha(rs.getString("senha"));
 		} else {
                       // o login não existe, ou existe e a senha está incorreta
                }
 		try { smtp.close(); } catch (SQLException ex) {}
 		try { rs.close(); } catch (SQLException ex) {}
 		System.out.println(operador.getSenha().equals("123"));
 		return operador != null && operador.getSenha().equals(ope.getSenha());
 	}
Criado 28 de junho de 2007
Ultima resposta 28 de jun. de 2007
Respostas 1
Participantes 2