Problema "já batido" mas eu tô apanhando aqui

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:

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