Erro com inserção de data - componente JDataChooser
4 respostas
G
Gastaldon
Bom dia!
Estou com um problema na inserção de data usando o componente JDataChooser. Estou utilizando o banco de dados firebird e no banco a minha variável é do tipo Date.
Quando tento realizar o cadastro aparece o seguinte erro: org.firebirdsql.jdbc.FBSQLException:GDS Exception. 335544334. conversion error from string "Tue Jul 31 11:01:36 BRT 2012.
Antes de inserir, converter para java.sql.Date, pois o JDateChooser retorna um objeto de java.util.Date (como pode ver, classes distintas).
Se está usando JDBC e preparedStatement, é bem simples.
Se não, preciso saber como está fazendo a persistência.
Sim, pois tanto o atributo dataCadastro do objeto fornecedor, quanto o retorno do método getDate do objeto mcdDataCadastro (que é um objeto da classe JDateChooser) são do tipo java.util.Date.
O tipo de data que os bancos de dados usam é diferente, ela é abstraída e representada no java pela classe java.sql.Date.
Tanto que, quando você invoca o método setDate de um objeto de PreparedStatement (java.sql.PreparedStatement), você precisa fazer algo assim
Pois, um dos construtores sobrecarregados da classe java.sql.Date recebe como argumento um long, que é o retorno do método getTime() da classe java.util.Date.