Problema em um metodo

bom eu tenho um metodo no button para chamar a minha validação:

public void valida2(){
String Login = jLogin.getText(), Senha=jSenha.getText();
Usuario u = new Usuario(Login,Senha);
UsuarioDAO dao = new UsuarioDAO();
dao.validarSenha(u);
}

Estou com uma dúvida de como prosseguir com esse metodo:

    public Usuario validarSenha(Usuario u){
     String sql = "SELECT id_usuario, login FROM usuario where login = ? and senha = ?";
     try {
         PreparedStatement stmt = con.prepareStatement(sql);
         ResultSet rs = stmt.executeQuery();
         stmt.setString(1, u.getLogin());
         stmt.setString(2, u.getSenha());
         
         if (rs.next()){
             Usuario usuarioLogado = new Usuario(rs.getLong("id_usuario"));
             usuarioLogado.setNome(rs.getString("nome")); // vai exibir mesmo o login?
             System.out.println("xd");
             return usuarioLogado;
         }else{
             System.out.println("xdx");
         }
         stmt.close();
         rs.close();
         con.close();  
     } catch (SQLException ex) {
         System.out.println("xdf");
         return null;
     }
     
     return null;
     }

ao debuggar ele chega até essa parte:

ResultSet rs = stmt.executeQuery();
e depois vai para o
catch (SQLException ex) {
System.out.println(“xdf”);
return null;
}

Só uma observação, o

ResultSet rs = stmt.executeQuery();

tem que ficar abaixo dos

stmt.setString(1, u.getLogin());
stmt.setString(2, u.getSenha());

Pq na query tem 2 parametros “?”, e se não passar eles, vai direto para a exceção.

mt obrigado mano era esse o problema
com esse codigo você poderia me ajudar como eu criaria uma variavel global para guardar esse id
que eu pego por aq: Usuario usuarioLogado = new Usuario(rs.getLong(“id_usuario”));

?