Setando data no PreparedStatement
Mais um post sobre Java, esse também sobre datas, e mais uma vez sobre algo que me gerou dúvida, que procurei na web e que não vi nada que me agradasse, ou servisse exatamente para o que eu queria, por isso quando acontece esse tipo de coisa, acho que é válido postar dicas aqui pois pode vir a ser dúvida de outras pessoas também. O projeto que estou escalado, está pra ir pro ar em pouco tempo, e a galera aqui deixou sobre minha tutela substituir algumas partes essências do projeto que estavam usando o objeto Statement para fazer Inserts, Uploads e Delets, pelo PreparedStatement, aliás me pediram isso com certa urgência. Por que da urgência? O PreparedStatement previne a famosa injeção de SQL, um mal que pode causar diversos problemas para o sistema, não entrarei em detalhes, coisa que o Statement não faz. Feito isso, um problema surgiu. A galera aqui desenvolveu um método para tratar datas diretamente para o Oracle usando o comando to_date. o que facilita muito em alguns casos, mas esse método gera uma string, e como pro PreparedStatement basta você colocar um interrogação(?) no lugar que você quer que entre o comando a ser passado para a query, e depois informar o tipo para ele que ele se encarrega do resto, quando era usado o setString para o retorno do método usado, ele colocava tudo entre aspas simples, mais ou menos assim ‘to_date(’26/08/08′, ‘dd/mm/yyyy’)', isso gerava um erro na hora de executar esse sql, foi ai que fiquei sem saber o que fazer. Depois de muito pesquisar e de consultar alguns amigos do trampo, conseguimos chegar a um denominador comum. Setamos direto no PreparedStatement o tipo data (SetDate), e usamoso new Date passando para este método a data em TimeInMillis. Complicou?? Mostrarei o código.
pstmt.setDate(posicao, new Date(data.getTimeInMillis()));
Esse código passa para o banco a data com o formato correto, e Graças a Deus resolveu meu problema. ![]()
IETester
Trago boas novas para aqueles que precisam testar suas páginas no maior “mal necessário” dos programadores web, para quem não entendeu ainda, estou me referindo ao Internet Explorer 6 !
Esqueçam o Virtual Pc !! Fuçando na net encontrei um software muito bom que simula várias versões do IE (do 5.5 ao 8 beta), o que me interessou muito, não deixem de conferir:
IETester, segue o link para download abaixo:
Quer burlar os captchas do RapidShare?
Jandira Feghali e o web calote
Pra quem vota no rio, tá aí um bom motivo pra não votar em alguém.

Dar calote em quem faz o site não é legal, viu, dona prefeita? Eu teria feito o mesmo, senão pior.
Via twitter (@pathaddad) e Diário do Rio.
Fim do PHP 4 - Vai tarde!
Hoje saiu o último release do PHP 4, o 4.4.9. De agora em diante só o PHP 5 terá suporte, então, se você usa o PHP 4, considere sobre fazer um upgrade (finalmente).
Gostaria de expressar minha ENORME felicidade com essa notícia, espero que agora abandonem de vez essa versão que é mais velha que eu. Vai tarde, PHP 4.
A propósito, semana passada foi lançada a versão alpha1 do PHP 5.3, que ainda não está pronta para uso em produção.
Go PHP 5 !
Diferença entre datas no JAVA
Bom galera, estava a um longo período de tempo sem postar aqui no blog, e pra falar a verdade desde que postei a última vez aqui muita coisa em minha vida mudou. Mudei de emprego, estou quase me formando, e hoje em dia deixei de trabalhar com ASP e PHP, e estou trabalhando com JAVA. Agora vamos ao que interessa, o tema do post…
Há algum tempo atrás tive que fazer um método para calcular a diferença de dias entre duas datas no JAVA, caçei no google alguns tutorias, e o que mais me agradou e me pareceu mais coerente, peguei fiz alguns ajustes e coloquei pra funcionar. Estranho, pois esse tipo de coisa é algo muito útil mas você só se dá conta disso quando precisa utilizar, e percebe que na web fica difícil achar algo semelhante, por isso resolvi postar aqui no blog minha solução.
Na verdade, o grande motivo pra mim estar aqui postando, é que um amigo aqui do trabalho outro dia precisou da mesma coisa, e fez uma solução genial pra resolver isso. A baixo colocarei minha versão do código, e a versão desse amigo, que com apenas 3 linhas de código (ele levou a sério o conceito do “KISS”), conseguiu fazer de meu código bricadeirinha, portanto, o crédito é todo seu paulista.
Minha versão:
public String calculaDiferencaDias(String data, String codProduto) {
DateFormat df = null;
Date d1 = null;
Date today = null;
long diff = 0;
String numDias = “”;
String retorno = “”;
try {
df = new SimpleDateFormat(”dd/MM/yyyy”);
d1 = (Date) df.parse(data);
} catch (ParseException ex) {
Logger.getLogger(ImportacaoComposicao.class.getName()).log(Level.SEVERE, null, ex);
}
today = new Date();
diff = d1.getTime() - today.getTime();
diff = diff / (1000 * 60 * 60 * 24);
numDias = String.valueOf(diff);
retorno = this.CarregarDados(numDias, codProduto);
return retorno;
}
A versão do meu amigo(Paulista):
public static int diferencaEmDias(Calendar data1, Calendar data2) {
long m1 = data1.getTimeInMillis();
long m2 = data2.getTimeInMillis();
return (int) ((m1 - m2) / (24*60*60*1000));
}

