Varrer JTable e alterar dados quando satisfazerem condição!
1 resposta
ygorguedes
Boa tarde. Estou com um problemão e preciso muito de uma ajuda. Vou tentar exemplificar ao máximo:
Tenho uma JTable onde possui dados do BD certo?
Estou tentando alterar os dados de linhas específicas que atendam a uma condição;
Caso seja verdadeira a condição, ele altera a linha específica da tabela.
Esta condição está atrelada ao tempo de estadia em um estabelecimento.
Caso os “milisegundos” estejam maior que 24h, preciso que o índice de DIÁRIAS mude para 1, senão deixe em 0.
O problema é que ele está verificando apenas o primeiro registro da minha JTable, ele não está percorrendo toda ela.
Vou deixar um exemplo que estou tentando mudar. Agradeço desde já.
if (totalTimeSeconds < 86400) {
for(intj=0;j<jTable1.getRowCount();j++){conexao.abrirConexao();diaria=0;System.out.println(totalTimeSeconds);PreparedStatementstmt=conexao.con.prepareStatement("UPDATE cadastro SET diaria = "+diaria);stmt.executeUpdate();preencherTabela("SELECT * FROM cadastro ORDER BY id");conexao.fecharConexao();}}
Bem, já que ninguém fez questão de me ajudar, tentei e, por parte, consegui resolver o problema. se alguém também o tiver, que dê uma olhada em como eu resolvi.
OBS: minha instrução está percorrendo todos os dados da minha jTable…consigo ver através da saída “System.out.println”, no entanto, não está atualizando a linha correspondente, ou seja, ele está atualizando toda a coluna, que não é o que eu queria.
Time horaBanco;
Date dataBanco;
SimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy");SimpleDateFormatsdfB=newSimpleDateFormat("dd/MM/yyyy");//banco de dadosSimpleDateFormatsdf1=newSimpleDateFormat("HH:mm:ss");SimpleDateFormatsdf1B=newSimpleDateFormat("HH:mm:ss");//banco de dadosSimpleDateFormatsdf2=newSimpleDateFormat("dd/MM/yyyy HH:mm:ss");SimpleDateFormatsdf3=newSimpleDateFormat("dd/MM/yyyy HH:mm:ss");//banco de dadosDatedata=newDate();Datehora=newDate();DatedataHoraA=newDate();DatedataHoraB=newDate();Datediferenca=newDate();StringformatData=sdf.format(data);// valor: 07/09/2017StringformatHora=sdf1.format(hora);// valor: 17:35:00StringformatDataHora=formatData+" "+formatHora;//valor: 07/09/2017 17:35:00try{dataHoraA=sdf2.parse(formatDataHora);}catch(ParseExceptione){System.out.println(e.getMessage());}try{conexao.abrirConexao();conexao.rs.first();do{dataBanco=conexao.rs.getDate("data");StringdataBancoF=sdfB.format(dataBanco);//valor: 07/09/2017horaBanco=conexao.rs.getTime("hora");StringhoraBancoF=sdf1B.format(horaBanco);//valor: 17:35:00StringdataHoraBanco=dataBancoF+" "+horaBancoF;//valor: 07/09/2017 17:35:00dataHoraB=sdf3.parse(dataHoraBanco);diferenca.setTime(dataHoraA.getTime()-dataHoraB.getTime());longdifMilli=dataHoraA.getTime()-dataHoraB.getTime();inttimeInSeconds=(int)difMilli/1000;inthours,minutes,seconds,totalTimeSeconds;hours=timeInSeconds/3600;timeInSeconds=timeInSeconds-(hours*3600);minutes=timeInSeconds/60;timeInSeconds=timeInSeconds-(minutes*60);seconds=timeInSeconds;totalTimeSeconds=((hours*3600)+(minutes*60)+seconds);if(totalTimeSeconds<86400){conexao.abrirConexao();diaria=0;System.out.println(totalTimeSeconds);PreparedStatementstmt=conexao.con.prepareStatement("UPDATE cadastro SET diaria = "+diaria);stmt.executeUpdate();}if(totalTimeSeconds>86400){conexao.abrirConexao();diaria=1;System.out.println(totalTimeSeconds);PreparedStatementstmt=conexao.con.prepareStatement("UPDATE cadastro SET diaria = "+diaria);stmt.executeUpdate();}}while(conexao.rs.next());}catch(Exceptione){System.out.println(e);}//conexao.fecharConexao();}