Meninos, sei que é um problema batido e até facil para vcs, inclusive li outro dia aqui no Forum mesmo que um Colega estava também com o mesmo problema que eu agora, mas ele não disse se resolveu ou não …
É o seguinte : Utilizo JSPxJDBCxMySQL e estou tentando ler um registro em minha tabela acontece que tem um Campo tipo Date que as vezes vem zerado no Banco e dá erro de console quando leio o registro.
Vejam o codigo :
import java.util.Date
Pedaço do codigo do ClienteVO
public Date getDtNascCli() {
return dtNascCli;
}
public void setDtNascCli(Date dtNascCli) {
this.dtNascCli = dtNascCli;
}
Vejam o erro do Console “e.printStackTrace”
INFO: Find registry server-registry.xml at classpath resource
31/03/2008 10:25:16 org.apache.catalina.startup.Catalina start
INFO: Server startup in 906 ms
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.getDateFromBytes(ResultSet.java:2223)
at com.mysql.jdbc.ResultSet.getDate(ResultSet.java:1971)
at com.mysql.jdbc.ResultSet.getDate(ResultSet.java:1934)
O engraçado é que ele mostra erro de java.sql.Date mas eu importei foi o java.util.Date la´no VO !!!
Alguem poderia me ajudar ?
Obrigada
Giuliana
se vc estiver usando um PreparedStatement o data que ele recebe é um java.sql.Date vc terá que converter o seu date util para o tipo sql.date…
Sim, utilizo o PreparedStatement
Poderia ser mais especifico ? Eu estou começando agora … :oops: :oops:
Brigada
Outra coisa, como que ele dá erro apenas qdo a data está zerada ?
Quando o campo possui data preenchida no Banco ele funciona perfeitamente !
Giuliana
desculpe… estava fazendo uns testes e ele não reclama de trabalhar com date se é do pacote java.util ou java.sql
bem para não dar esse erro é melhor vc tratar essa valor para qdo ele vier do banco para usa classe…
Olha amigo, eu tentei debugar para ver aonde ele dava o erro :
public void setDtNascCli(Date dtNascCli) {
this.dtNascCli = dtNascCli;
}
Na declaração do Metodo ele já me dá o erro e já vai para o exception …
Como devo “barrar” isso ???
Giuliana
![:frowning: :frowning:](https://www.guj.com.br/images/emoji/twitter/frowning.png?v=6)
A data 0000-00-00 nao é valida pro mysql na leitura! Esse é um prob conhecido. Ele ate grava data 0000-00-00, mas na hora de ler como Date, da pau!
Voce vai precisar ir ao banco de dados diretamente e dar um UPDATE nessa linha e colocar uma data valida (ou NULL)
Ola
Giuliana como Paulo disse o mysql nao interpreta esse tipo de data ‘0000-00-00’ uma solução eh vc acresencentar na URL de Conexao um parametro para que possa converter a data null para 0000-00-00
jdbc:mysql://127.0.0.1:3306/dataBase?zeroDateTimeBehavior=convertToNull
Eu hein ?!?!?!?
Num é que funcionou ??
Gente Muuuuuuuuiiiiiiiiiittttttttttoooooooooo Obrigada mesmo a todos !!!
Sem vocês eu tava perdida !
Bjim
Giuliana