Bom eu estou fazendo um programa de controle de requisições
tenho uma tabela requisições que tem um campos (Ativa) / boolean / 0 = finalizada 1 = ativa.
ao criar uma requisição eu seto para 1 e tenho um metodo que da um select para verificar se ele tem algum registro ativo
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=0";
PreparedStatement stmt2 = con.prepareStatement(select);
mas eu estou com alguns problemas desse modo, se ele tiver algum registro com 0 ele pode ficar inserindo avontade e se ele tiver um registro ativo e outros com 0 ele conseguiria inserir também.
public boolean addReq(Requisicao r) throws SQLException {
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=0";
PreparedStatement stmt2 = con.prepareStatement(select);
ResultSet rs = stmt2.executeQuery();
if (rs.next()){
String sql = "INSERT INTO computador_requisicao(idusuario,nome,data_requisicao,observacao,status) VALUES("+Sessao.getInstancia().getUsuario().getId()+",?,now(),?,0)";
try {
con.setAutoCommit(false);
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, r.getNome());
stmt.setString(2, r.getMotivo());
stmt.executeUpdate();
stmt.close();
con.commit();
Alerts alerts = new Alerts();
alerts.alertReqCadastrado();
} catch (SQLException ex) {
con.rollback();
Alerts alerts = new Alerts();
alerts.alertUsuarioNCadastrado();
return false;
}
}else{
Alerts alerts = new Alerts();
alerts.reqAberta();
}
return true;
}