[RESOLVIDO]Primefaces p:calendar como gravar no banco de dados,,

tou tentando gravar uma data no banco…
mais sem sucesso…

olha o errro:

at java.lang.Thread.run(Unknown Source)

Caused by: javax.el.ELException: /clientes.xhtml @142,32 value="#{clientesBean.clientes.dataalteracao}": Cannot convert 01/11/12 00:00 of type class java.util.Date to class java.sql.Date
at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:136)
at javax.faces.component.UIInput.updateModel(UIInput.java:813)
… 33 more

segue minhas classe
no meu banco ela esta como date

[code] private Date dataalteracao;

public  Date getDataalteracao() {
	return dataalteracao;
}

public void setDataalteracao(Date dataalteracao) {
	this.dataalteracao = dataalteracao;
}

obj_sql.setDate(5, obj_clientes.getDataalteracao());//para gravar no banco
[/code]

quando coloca minha variavel como estring e meu banco como var char dah tudo certoo…

Leia:

http://javafree.uol.com.br/topic-879361-Transformar-javautilDate-em-javasqlDate.html

Se vc estiver usando hibernate/jpa aqui mostra como fazer: Mapeando Datas (Date) e Enum

nao tou usando hibernate e nem jpa

Você leu o post lá? O erro é claro:

Caused by: javax.el.ELException: /clientes.xhtml @142,32 value="#{clientesBean.clientes.dataalteracao}": Cannot convert 01/11/12 00:00 of type class java.util.Date to class java.sql.Date 
at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:136) 
at javax.faces.component.UIInput.updateModel(UIInput.java:813) 

Ele está esperando um sql.Date e tu está passando um util.Date

/amigo olha todos meu imports…nas tres clsses que uso…

nem tenho este import

[code]import java.io.Serializable;
import java.sql.Date;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.sql.Date;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import java.util.List;
import javax.faces.bean.*;
import javax.faces.model.SelectItem;
import java.sql.Date;
[/code]

Coloca isso <p:calendar><f:convertDateTime pattern=“dd/MM/yyyy”/></p:calendar>

[quote=Flip_novidade]/amigo olha todos meu imports…nas tres clsses que uso…

nem tenho este import

[code]import java.io.Serializable;
import java.sql.Date;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.sql.Date;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import java.util.List;
import javax.faces.bean.*;
import javax.faces.model.SelectItem;
import java.sql.Date;
[/code]

[/quote]

nada ainda;…

nossa tou ficando loco com isso…

alguem ai pra ajudar…
fiz assim mais não consegui…

		Clientes al = null;
		Date utilDate = al.getDataalteracao();
		java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
		

		obj_sql.setDate(5, sqlDate);

cara…

usa JDBC por trás do JSF?
¢¬¬

Use JPA e acabe com esse problema!
PS: use um converter ou algo especifo para datas na view
tipo p:calendar

abrazz

no meu xml eu tento… mais num vai

<h:outputLabel for ="dataalteracao" value = "Data Inclusão:*"/> <p:calendar id="dataalteracao" value="#{clientesBean.clientes.dataalteracao}" required="true" title="Campo obrigatório. Informe a data" label="Data de Inclusão"> <f:convertDateTime pattern="dd/MM/yyyy" /> <p:tooltip for="dataalteracao" showEvent="focus" hideEvent="blur"/> </p:calendar>

O que deve estar acontecendo é: o p:calendar retorna um objeto do tipo java.util.Date e você está tentando jogar para um java.sql.Date.

Não me lembro bem, mas em JDBC tem problemas quanto a usar java.util.Date? Caso tenha, arranje um jeito de converter o java.util.Date em java.sql.Date.

=)

jah tentei assim

mais num foi

Clientes al = null;
Date utilDate = al.getDataalteracao();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

obj_sql.setDate(5, sqlDate);

O atributo dataAlteracao na classe Cliente é um Date de que pacote? util ou sql?

consegui…

fiz assim

xml

					<h:outputLabel for ="dataalteracao" value = "Data Inclusão:*"/>
					<p:calendar id="dataalteracao" value="#{clientesBean.clientes.dataalteracao}" 
						required="true" locale="pt_BR" pattern="dd/MM/yyyy" title="Campo obrigatório. Informe a data"
						label="Data de Inclusão">
						<f:convertDateTime pattern="dd/MM/yyyy" />
						<p:tooltip for="dataalteracao" showEvent="focus" hideEvent="blur"/>
					</p:calendar>

Dao

[code] Clientes al = obj_clientes;
Date utilDate = al.getDataalteracao();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

		//obj_sql.setDate(5, sqlDate);
		obj_sql.setDate(5, (java.sql.Date) sqlDate);[/code]

ufaaaaaaaaaaaaaaa…

mais agora ela salva… mais smepre com um mes e um dia a menus…

meu deus como vou arumar isso

agoraaa simmmm

so mudei meu xml

<h:outputLabel for =“dataalteracao” value = “Data Inclusão:*”/>
<p:calendar id=“dataalteracao” value="#{clientesBean.clientes.dataalteracao}"
required=“true” pattern=“dd/MM/yyyy” title=“Campo obrigatório. Informe a data”
label=“Data de Inclusão”>
<p:tooltip for=“dataalteracao” showEvent=“focus” hideEvent=“blur”/>
</p:calendar>

uffaaa dps de umas 4 horas nisso
foi

1 curtida