Boa tarde, pessoal!!
tudo bem??
Seguinte…
eu tenho essa estrutura de comandos em php que tá funcionando certinho, mas eu preciso urgente traduzir ela para alguma coisa compativel com java…
segue o código:
mysql_query("SET ISOLATION LEVEL SERIALIZABLE");mysql_query("START TRANSACTION");//===============================================================$query=mysql_query("SELECT * FROM tabela WHERE ( {$concreto} ) AND capture ='0' AND email NOT in('[email removido]') AND telefone <> '' AND telefone NOT LIKE '0000' AND solicitado = '0' AND time_to_sec(timediff(now(),block))> $tempo2 AND data between '$dataRecebidaDoOperador' AND '$dataRecebidaDoOperador2' AND origem not in('', 'pergunta') AND boleto_enviado <>'1' AND situacao NOT IN ('3','4','6','7','8','5') limit 1 LOCK IN SHARE MODE;");$linhas=mysql_num_rows($query);$x="0";for($x;$x<$linhas;$x++){$codigoDoCliente=mysql_result($query,$x,'codigo');}//===============================================================if($linhas>'0'){mysql_query("UPDATE tabela SET capture='$cripto' WHERE codigo=$codigoDoCliente");}mysql_query("COMMIT");
é muito trabalhoso???não sei traduzir isso, vocês me ajudam???
Obrigado
eu sei um pouco, sou iniciante ainda , mas já fiz alguns projetos a titulo de estudo, trabalho ocm php há um bom tempo e me considero razoável, dou conta do recado, digamos assim, java ainda estou aprendendo, mas ainda tenho dificuldade de “enxregar” em java, e sintaxe ,mesmo sabe? sei a logica de como fazer, mas ainda não domino a linguagem…
Segue ai mais ou menos como deveria ficar usando JDBC... omiti a parte básica de fazer a conexão, fechar etc.
Obs: São necessárias adaptações!
// Begin Transactioncon.setAutoCommit(false);// TRANSACTION_SERIALIZABLE = 8con.setTransactionIsolation(8);// Basicamente um select que limita em 1 o resultado e faz LOCK do registro lido... // não sei se precisa fazer algum unlock depois, verifique isso! TODO Stringsql="SELECT * FROM tabela WHERE ( :concreto ) AND capture ='0' AND "+"email NOT in('[email removido]') AND telefone <> '' AND telefone NOT LIKE '0000' "+"AND solicitado = '0' AND time_to_sec(timediff(now(),block))> :tempo2 AND "+"data between :dataRecebidaDoOperador AND :dataRecebidaDoOperador2 AND"+" origem not in('', 'pergunta') AND boleto_enviado <>'1' AND "+"situacao NOT IN ('3','4','6','7','8','5') limit 1 LOCK IN SHARE MODE;";PreparedStatementpst=con.prepareStatement(sql);// Não devem ser Strings, adapte para os tipos corretos pst.setString(1,concreto);// @concreto , imagino que seja alguma expressão SQLpst.setString(2,tempo2);pst.setString(3,dataRecebidaDoOperador);pst.setString(4,dataRecebidaDoOperador2);// Essa parte está muito estranha, se o select acima já limitou em 1, então linhas ou é ZERO ou é UM// porque fazer um loop?? //$linhas=mysql_num_rows($query);//$x="0";//for($x;$x<$linhas;$x++)//{//$codigoDoCliente=mysql_result($query,$x,'codigo');//}ResultSetrs=pst.executeQuery();// Faz o UPDATE necessário se retornou 1 registro if(rs.next()){// de novo, não deve ser String, veja o tipo correto...codigo=rs.getString("codigo");// cripto deve ser algum parametro...//UPDATE tabela SET capture='$cripto' WHERE codigo=$codigoDoCliente");sql="UPDATE tabela SET capture=? WHERE codigo=?";pst=con.prepareStatement(sql);pst.setString(1,cripto);pst.setString(2,codigo);pst.executeUpdate();}// Se tudo certo, confirma o que foi feito - Coloque sua condição de sucesso... con.commit();