Fala Galera, estou com um pequeno problema, mas não to conseguindo resolver.
Seguinte, recebo dados de um formulario jsp. Duas datas como String"dataInicio" e “dataFim”, quando tento passar pra date utilizando o SimpleDateFormat, o glassFish me dá o seguinte erro:
Grave: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: ‘Sat Oct 03 00:00:00 BRT 33’ for column ‘dataInicio’ at row 1.
Como você está gravando os dados? Posta o método do DAO ae.
D
diego_mendis
rsaraiva.
Aí vai:
publicvoidinserir(Cursocurso)throwsSQLException,ClassNotFoundException{Conexao.conexao();Stringsql="insert into curso (dataInicio, dataFim, nomeInstrutor) values ('"+curso.getDataInicio()+"','"+curso.getDataFim()+"','"+curso.getNomeInstrutor()+"')";Conexao.stm.execute(sql);}
Abraço.
D
diego_mendis
Só mais uma informação:
Os atributos dataInicio e datafim da classe Curso são do tipo Date.
rsaraiva
Tenta assim:
PreparedStatementstatement=connection.prepareStatement("insert into curso(dataInicial, dataFinal) values(?,?)");statement.setDate(1,newjava.sql.Date(dataInicio.getTime()));statement.setDate(2,newjava.sql.Date(dataFim.getTime()));statement.executeUpdate();
A idéia é passar um tipo java.sql.Date criado a partir do seus dates.
Outra coisa, não é legal passar os parâmetros por contatenação na instrução sql, mas como está acima.
Abraço
d34d_d3v1l
Isso ae…
quando salva no bd usa o Date do pacote sql.
nao do util como estamos acostumados
abraz
DoomGuy
Acho que não esta ocorrendo a transformação de java.util.Date para java.sql.Date.
SimpleDateFormatformat=newSimpleDateFormat("dd/MM/yyyy");try{data.setData(format.parse(jTextDate.getText());}catch(ParseExceptionex){ex.getMessage();}//e lá no código no DAO eu faria assim:Funcionariofuncionario=newFuncionario();funcionario.setData(12/10/1997);PreparedStatementsmt=con.PreparedStatement(...);try{smt.setDate(1,newjava.sql.Date(funcionario.getData().getTime()));}catch(Exceptionex){....}
D
diego_mendis
Valeu Galera, todas as dicas funcionaram aqui… só uma última dúvida, Quando for apresentar essas datas datas na jsp, preciso passar pra String de novo ou posso passar como Date mesmo?
Abraço!
DoomGuy
Para exibir a data como “dd/MM/yyyy” acho que deve ser feito o seguinte: