Estou desenvolvendo uma aplicação com SWING, e ao passar para o preparedStatement.setDate( DATA ) uma data formatada no DateFormat.parse( “15/05/2002”) recebida de um componete JText da tela, estou recebendo a mensagem que o tipo de dado e invalido;
Gostaria de saber se alguem tem um exemplo de como devo receber uma string da tela e gerar um String SQL para inserção no ACCESS.
Passagem de um tipo Date para uma String Sql no Access
8 Respostas
Utilize java.text.SimpleDateFormat:
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date date = (java.util.Date)format.parse("15/05/2002");
...
meuPreparedStmt.setDate(date);
...
Ou melhor:
java.sql.Date dt = new java.sql.Date( suaData.getTime() );
ps.setDate( 1, dt );
Oops!
Faltou o indice no setDate…
Foi mal…
Ah! e claro…a java.util.Date pra java.sql.Date com o método getTime conforme mostrou o Daniel…
Olá pessoal!
Aproveitando o tópico, quero perguntar uma coisa.
Não seria melhor utilizar java.util.Calendar ou java.util.GregorianCalendar já que a maioria dos método java.util.Date e java.sql.Date estão deprecated?
Pelos métodos estarem deprecated, isso não quer dizer que a Sun não estimula o uso deles? Aconselha a utilizar outros de outra classe talvez?
Eu realmente costumo usar GregorianCalendar quando preciso manipular Datas…
Mas nesse caso específico não acho necessário…nao foi necessario usar nenhum método deprecated para o q ele estava querendo fazer…
Mas sempre q possível eh bom evitar métodos deprecated…isso sem dúvida eh uma boa prática visto algumas vezes, (senão todas), a nova implementação conter melhorias…
Entendo!!
Isso não quer dizer q a Sun irá tirar essa classe da API, certo?
Está somente melhorando as suas implementações criando uma abstração maior de suas classes.
Isso mesmo. Se a Sun retirasse a implementação anterior da API ela acabaria com a compatibilidade das novas versões em relação as anteriores.