Adicionar resultado de um resultset a uma lista

Bom eu queria criar uma list para guardar os valores de um campo do meu select

eu estou com dúvidas em como fazer isso:

    String verificarStatus = "SELECT * from computador_requisicao cr INNER JOIN usuario u ON (u.id_usuario = cr.idusuario) where u.id_usuario = "+Sessao.getInstancia().getUsuario().getId()+" ";
    try {
    PreparedStatement status = con.prepareStatement(verificarStatus);
    ResultSet rs = status.executeQuery();
    List<Requisicao> statusList = new ArrayList<>();{
        while (rs.next()) {
                    
        
        }
        status.close();
        rs.close();
    }
    } catch (SQLException ex) {
    
    }

o campo da tabela que eu queria salvar na lista (todos os registros do usuario)
cr.status

Eu queria salvar todos os registros de Status
para depois percorrer a lista
e se houver algum registro com o valor de 1 não fazer nada se não fazer um insert.

Basta instanciar um novo objeto do tipo esperado pela lista, recuperar seus valores do resultset e adicionar o objeto na lista!

Exemplo

while (rs.next()) {
    Requisicao req = new Requisicao();
     req.setSeuCampoString(rs.getString("suaColunaDoBanco"));
    statusList.add(req);
}
1 curtida
String verificarStatus = "SELECT * from computador_requisicao cr INNER JOIN usuario u ON (u.id_usuario = cr.idusuario) where u.id_usuario = "+Sessao.getInstancia().getUsuario().getId()+" ";
        try {
        PreparedStatement status = con.prepareStatement(verificarStatus);
        ResultSet rs = status.executeQuery();
        List<Requisicao> statusList = new ArrayList<>();{
            while (rs.next()) {
            Requisicao req = new Requisicao();           
            req.setStatus(rs.getBoolean("status"));
            statusList.add(req);
            }
            status.close();
            rs.close();
        }

opa eu tinha conseguido
mas eu estou aqui quebrando uma cabeça
de como percorrer essa lista
e se tiver apenas resultados igual a 0 usar um insert
se existir um ou mais resultados true ou 1 no campo
inserir uma msg.

o campo que vou pegar cr.Status é boolean
eu tou pegando todas requisições criadas do usuario e queria verificar se ele tem alguma em andamento que é (1 ou true), se ele tiver não poderá criar a requisição.

Faz um for each da lista e testa o valor do atributo status, aí basta executar os comando que quiser de acordo com o status.

Mas tipo, desse modo iria checar um por um não é? Tipo se o primeiro valor da lista for 0 ele já iria inserir, ou estou enganado?
Tipo eu queria inserir só depois de testar todos e se não tiver valor 1

Sim, seria dessa forma, pra fazer tudo depois você teria que criar duas listas separadas, dividir os registros entre elas de acordo com o status.

Qual o problema de fazer dessa forma?

tipo eu tenho uma tabela requisição
onde tem o campo ativo: boolean / 1 = andamento / 0 finalizada.

o usuario vai criar uma requisição eu queria fazer essa verificação se ele tem alguma requisição em aberto se sim ele não conseguiria criar
e ao criar uma requisição eu seto como 1.

por isso na hora do select
where u.id_usuario = “+Sessao.getInstancia().getUsuario().getId()+”
eu pego o id do usuario logado .

se fosse dessa forma ele iria inserir mesmo se tiver campo status como 1 ( ou uma requisição em aberto )

Se você tratar a comparação de status não tem como ele inserir!
Só vai inserir se você permitir que o código se comporte dessa forma.

teria como você me dar um exemplo?

Consegui resolver:

    String select = "SELECT * from computador_requisicao cr INNER JOIN usuario u ON (u.id_usuario = cr.idusuario) where u.id_usuario ="+Sessao.getInstancia().getUsuario().getId()+" and cr.status=1";
    PreparedStatement stmt2 = con.prepareStatement(select);
    Alerts alerts = new Alerts();
    ResultSet rs2 = stmt2.executeQuery();
    if (rs2.next()){alerts.reqAberta();}
    else{
     String inserirRequisicao = "INSERT INTO computador_requisicao(idusuario,nome,data_requisicao,observacao,status) VALUES("+Sessao.getInstancia().getUsuario().getId()+",?,now(),?,1)";
    try {
         con.setAutoCommit(false);
         PreparedStatement stmt = con.prepareStatement(inserirRequisicao);
         stmt.setString(1, r.getNome());
         stmt.setString(2, r.getMotivo());
         stmt.executeUpdate();
         stmt.close();
        con.commit();
         
    }