Duvida com data usando MYSQL...The method setDate(int, Date) in the type PreparedStatement is not ap

Olá,

estou fazendoum exemplo usando JSF 2 com JDBC e estou tento problema com um campo Date
de java.util mais quando uso comando preparedstatement para recuperar do banco me da erro abaixo
pois os tipos são diferente do banco de dados é Date e o atributo da classe é Date do java

The method setDate(int, Date) in the type PreparedStatement is not applicable for the arguments (int, Date)

o que fazer pra contornar esse erro …

abs

insereSt.setDate(4, contato.getDataCadastro());
import java.util.Date;
public class Contato {
	private Integer codigo;
	private String nome;
	private String telefone;
	private String email;
	private Date dataCadastro;
	private String observacao;

CREATE TABLE `contato` (
  `codigo` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) DEFAULT NULL,
  `telefone` varchar(50) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `dt_cad` date DEFAULT NULL,
  `obs` text,
  PRIMARY KEY (`codigo`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1$$
public static void main (String []args){
		
		ContatoCrudJDBC contatoCRUDJDBC = new ContatoCrudJDBC();
		// Criando um primeiro contato
		
		Contato imag = new Contato();
		imag.setNome("TEste Meu");
		imag.setTelefone("(011) 1234-1234");
		imag.setEmail("eu@eu.com.br");
		imag.setDataCadastro(new Date());  ?????
		imag.setObservacao("teste...");
		contatoCRUDJDBC.salvar(imag);
		System.out.println("Contatos cadastrado :" + contatoCRUDJDBC.listar().size());
		
	}

insereSt.setDate(4, new java.sql.Date(contato.getDataCadastro().getTime()));

olá amigo,
Tente o seguinte:


 public static void main (String []args){  
           
         ContatoCrudJDBC contatoCRUDJDBC = new ContatoCrudJDBC();  
         // Criando um primeiro contato  
          SimpleDateFormat data=new SimpleDateFormat("yyyy-MM-dd"); // ou tente yyyy-dd-MM 
         Contato imag = new Contato();  
         imag.setNome("TEste Meu");  
         imag.setTelefone("(011) 1234-1234");  
         imag.setEmail("eu@eu.com.br");  
         imag.setDataCadastro(date.parse(new Date)); // faça a conversão para a data ISO-8859-1 2011-10-01 ou 2011-01-10 HH:mm:ss  
         imag.setObservacao("teste...");  
         contatoCRUDJDBC.salvar(imag);  
         System.out.println("Contatos cadastrado :" + contatoCRUDJDBC.listar().size());  
           
     }

Esperimente fazer esse parse…

Espero ter ajudado. :slight_smile:

Fallow

O problema é que você está usando java.util.Date. Use java.sql.Date.

Flw! :thumbup: