Buscar id do login no banco de dados

Estou trabalhando na função para alterar senha do usuário caso ele esqueça a senha, eu criei um frame para buscar login do usuário no banco ai ok, só que não to conseguindo trazer o id do usuário pra mudar a senha do mesmo…

Segue o código abaixo

// resetsenha controller

package Teladelogin.controller;

import Teladelogin.bean.loginbean;
import Teladelogin.dao.logindao;
import chamartela.GerarTela;
import jBDC.Conexao;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import load.LoadFXML;

public class ResetSenhaController implements Initializable {

Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;

Stage dialogStage = new Stage();
Scene scene;

@FXML
private TextField user;

@FXML
private PasswordField senha;

@FXML
private Button salvar;

@FXML
private Button buscar;

@FXML
private AnchorPane redimensionar;

@FXML
private TextField codigo;


@Override

public void initialize(URL url, ResourceBundle rb) {
    this.carregarImage();
    this.buscar.setOnAction(event -> {
        if (buscarLogin()) {
            conn = Conexao.getConnection();
            String sql = "Select * from usuario where login = ? ";
            try {
                pst = (PreparedStatement) conn.prepareStatement(sql);
                pst.setString(1, user.getText());

                rs = pst.executeQuery();
                if (!rs.next()) {
                    infobox("Login não encontrado, Verifique e tente Novamente ", null, "Erro");
                    this.user.setText("");
                } else {
                    infobox2("Login Encontrado", null, "Sucesso");
                    Node node = (Node) event.getSource();
                    dialogStage = (Stage) node.getScene().getWindow();

                }
            } catch (Exception e) {

// JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}
}

    });
    this.salvar.setOnAction(event -> {
        if (validaCampo()) {
            loginbean login = new loginbean();
            logindao logi = new logindao();

            login.setLogin(user.getText());
            login.setSenha(senha.getText());

            try {
                logi.Alterar(login);
                infobox2("Usuário e Senha Alterado com Sucesso", null, "Ok");
                Node node = (Node) event.getSource();
                dialogStage = (Stage) node.getScene().getWindow();
                dialogStage.close();

            } catch (Exception ex) {
                Logger.getLogger(ResetSenhaController.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    });
}

public static URL getFXML() {
    return ResetSenhaController.class.getResource("/Teladelogin/view/ResetSenha.fxml");

}

public void infobox(String infoMessage, String headerText, String title) {
    Alert alert = new Alert(Alert.AlertType.ERROR);
    alert.setContentText(infoMessage);
    alert.setTitle(title);
    alert.setHeaderText(headerText);
    Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
    stage.getIcons().add(new Image("/imagem/logo b.png"));

    alert.showAndWait();
}

public void infobox2(String infoMessage, String headerText, String title) {
    Alert alert = new Alert(Alert.AlertType.INFORMATION);
    alert.setContentText(infoMessage);
    alert.setTitle(title);
    alert.setHeaderText(headerText);
    Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
    stage.getIcons().add(new Image("/imagem/logo b.png"));

    alert.showAndWait();
}

private boolean validaCampo() {
    String erroMessage = "";
    if (user.getText() == null || user.getText().length() == 0) {
        erroMessage += "Login inválido\n";
    }

    if (senha.getText() == null || senha.getText().length() == 0) {
        erroMessage += "Senha inválido\n";
    }

    if (erroMessage.length() == 0) {
        return true;
    } else {
        Alert alert = new Alert(Alert.AlertType.ERROR);
        alert.setTitle("Erro ao Alterar de Senha");
        alert.setHeaderText("Campos Vazios, Insira os Dados para Atualizar as Informações ");
        alert.setContentText(erroMessage);
        Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
        stage.getIcons().add(new Image("/imagem/logo b.png"));
        alert.showAndWait();

        return false;
    }

}

private boolean buscarLogin() {
    String erroMessage = "";
    if (user.getText() == null || user.getText().length() == 0) {
        erroMessage += "Login inválido\n";
    }
    if (erroMessage.length() == 0) {
        return true;
    } else {
        Alert alert = new Alert(Alert.AlertType.ERROR);
        alert.setTitle("Buscar Login ");
        alert.setHeaderText("Campo Vazio, Insira o Login  para Buscar mais  Informações ");
        alert.setContentText(erroMessage);
        Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
        stage.getIcons().add(new Image("/imagem/logo b.png"));
        alert.showAndWait();

        return false;
    }

}

private void carregarImage() {
    this.redimensionar.setStyle(
            "-fx-background-image:url(/imagem/login.png);"
            + "-fx-background-repeat:round;"
            + "-fx-background-size:contain;"
            + "-fx-background-position:center center;");
}

}

// classe DAO Login

package Teladelogin.dao;

import Teladelogin.bean.loginbean;
import jBDC.Conexao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class logindao {

private Connection con = null;
private PreparedStatement pst = null;
private ResultSet rs = null;

public Object Alterar(Object obj) throws Exception {

    loginbean login = (loginbean) obj;

    String sql = "update usuario set login = ?,senha = ? where codigo = ?";
    try {
        con = Conexao.getConnection();
        pst = con.prepareStatement(sql);

        pst.setString(1, login.getLogin());
        pst.setString(2, login.getSenha());
        pst.setInt(3, login.getCodigo());

        pst.execute();

        return login;

    } catch (SQLException ex) {
        Logger.getLogger(logindao.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        Conexao.fechar(pst);
        Conexao.fechar(con);
    }

    return null;

}

}

Onde está o select para obter o id?

eu tentei usar

esse exemplo

usuariobean bean = new usuariobean ();

codigo.setText(""+bean.getcodigo);

(“codigo” foi o id que coloquei no textfield )
mais tava trazendo nullo

Cara, pensa no seguinte: todo computador e todo sistema é burro. O desenvolvedor é que precisa dizer a ele o que fazer e como fazer.
Veja,você está trazendo esse código de onde?
Repito a minha pergunta anterior: onde está o select que busca o id?

"Veja,você está trazendo esse código de onde? "

Eu quero trazer da tabela usuário

Então você não fez?
Se não fez, precisa criar um select

SELECT id FROM usuario WHERE ???

Qual será a condição para obter o id? Comparar o login?

SELECT id FROM usuario WHERE login = ?

a condição seria ter um campo que usuario informava o login e clica no botao buscar e se achar o login o id do usuario pesquisado iria para o textfield correspondente ao id

Select * from usuario where login = ? ";

Ou eu devo fazer de outro modo para buscar o id do cara sem usar a função buscar que eu fiz

Tanto faz, desde que esse método:

  • Seja chamado antes da abertura do frame
  • Retorne o id em questão ou uma mensagem de erro coerente

Como ficaria a resolução para aparecer o Id ?porque sem id ele alterar todos usuarios de uma vez

Isso é um problema no update, não é?

UPDATE usuario SET senha = ? WHERE id = ?
1 curtida

Mais para alterar de acordo com id tem que passar o valor do id na textfield se nao vai alterar todos de novo

Cara, entenda, de uma vez.
Antes de começar a fazer qualquer coisa, exatamente qualquer coisa, você precisa planejar.
Este planejamento deve compreender todas as etapas do processo completo. Desde o primeiro passo, até o último.
Sendo assim, eu te pergunto, você fez esse planejamento? Você criou algum diagrama UML? Criou algum mapa mental, que seja?
Se não, as chances de você ter problemas com isso são muito grandes.
Note, você não sabe para onde ir, nem como fazer. E eu entendo que isso não é um problema com a linguagem, é um problema com a forma como você está desenvolvendo.
Se você não parou para planejar, ainda é tempo. Pare, defina todas as funcionalidades do sistema (mesmo que já tenha implementado), detalhe como cada funcionalidade deve funcionar (como eu faço, passo a passo, para cada coisa acontecer).
Garanto que isso vai te poupar muita dor de cabeça e tempo.

É uma aplicação simples que por sinal está pronto tudo funcionando adicionar cliente no banco,alterar, excluir fazer busca etc, só quis acrescentar essa função "esqueceu a senha " caso o usuário esqueça login ou a senha ai poderia mudar o login e senha de acesso

Cara, podia ser só um crud básico. Porém, se você não criar uma sequência lógica de acontecimentos, você sempre terá dificuldades.
Se em um projeto tido como simples você já está sofrendo, imagine num de média ou alta complexidade.