Erro no PreparedStatement

Olá estou tendo problema para usar o PreparedStatement. Tenho um exercio simples que é para fazer uma tela de login e estou usando o Hsqldb para salvar os logins e senhas. O problema é que quando vou pegar esses dados no banco sempre da que a senha ou usuario esta invalido. Fiz um debbug pra saber onde que era o erro e descobrir que na linha do PreparedStatement pstmt = con.prepareStatement(sql); ele simplesmente pulava para o catch e nao fazia o select.

public boolean autenticar(Usuario user) {
	boolean autenticado = false;
	
	Connection con = BancoUtil.getConnection();
	
	try {
		String sql = "select * from usuarios where login=? and senha=?;";
		PreparedStatement pstmt = con.prepareStatement(sql);
		pstmt.setString(1, user.getLogin());
		pstmt.setString(2, user.getSenha());
		ResultSet resultSet = pstmt.executeQuery();
		if (resultSet.next()) {
			autenticado = true;
		}
		resultSet.close();
		pstmt.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	return autenticado;
}

Retire o ponto e vírgula da sua String sql, deixando ele conforme abaixo e tente novamente:

String sql = "select * from usuarios where login=? and senha=?";

2 curtidas

Muito obrigada pela resposta, era isso mesmo. oq um ponto e virgula nao faz :joy::joy::joy::joy: ja tava ficando doida.

1 curtida