Ajuda - Enviar data para o banco de dados

Olá galera, estou desenvolvendo um sistema que controlará visitas técnicas de uma loja de informatica.
Bom o meu problema é que eu tenhu uma Classe Visitas
e criei nela um atributo Date dia;
esse dia tem os getters e setters normal

tenhu uma classe Dao(VisitasDao) responsavel pela comunicacao com o banco de dados…

no meu banco de dados(MySql) tenhu tb um campo Dia do tipo Date

vamos lah para a duvida agora
estou fazendo meu Prepared Statement normal como sempre fiz
porém na hora do date ele da erro

 conexao = GerenciadorConexoes.pegarInstancia().abrirConexao();
            String sentenca = GerenciadorConexoes.pegarInstancia().pegarPropriedades("ADICIONAR_VISITA");
            PreparedStatement ps = conexao.prepareStatement(sentenca);
            
            //dia,hora, km_saida,km_retorno,hora_saida,hora_chegada
            
            ps.setInt(1, visita.getCod_carro());
            ps.setInt(2, visita.getCod_funcionario());
            ps.setInt(3, visita.getCod_cliente());
            ps.setDate(4, visita.getDia());

ele da esse erro aqui
:
no suitable method found for setDate(int,java.util.Date)
method java.sql.PreparedStatement.setDate(int,java.sql.Date,java.util.Calendar) is not applicable
(actual and formal argument lists differ in length)
method java.sql.PreparedStatement.setDate(int,java.sql.Date) is not applicable
(actual argument java.util.Date cannot be converted to java.sql.Date by method invocation conversion)

alguem pode me dar uma luz?

É importante você lembrar que existem duas classes distintas: java.util.Date e java.sql.Date, sendo que a última herda da primeira (sql.Date herda de util.Date).

http://docs.oracle.com/javase/6/docs/api/java/util/Date.html
http://docs.oracle.com/javase/6/docs/api/java/sql/Date.html

Como ele lhe diz aqui:

[quote]no suitable method found for setDate(int,java.util.Date)

method java.sql.PreparedStatement.setDate(int,java.sql.Date) is not applicable
(actual argument java.util.Date cannot be converted to java.sql.Date by method invocation conversion) [/quote]

O método setDate espera um objeto java.sql.Date, mas você está passando um java.util.Date.

Pra resolver isso, java.sql.Date tem um construtor que recebe a data em forma de long (milisegundos). Você pode fazer algo do tipo:

java.util.Date dia = visita.getDia(); java.sql.Date diaSql = new java.sql.Date(dia.getTime()); ps.setDate(4, diaSql);

putz, q mankada minha hehe… e eu apanhando que nem besta… mas valews pela dika kara
vo testa ake

É normal confundir os Dates quando esquece que tem esses dois. :lol:

[quote=jilles]Olá galera, estou desenvolvendo um sistema que controlará visitas técnicas de uma loja de informatica.
Bom o meu problema é que eu tenhu uma Classe Visitas
e criei nela um atributo Date dia;
esse dia tem os getters e setters normal

tenhu uma classe Dao(VisitasDao) responsavel pela comunicacao com o banco de dados…

no meu banco de dados(MySql) tenhu tb um campo Dia do tipo Date

vamos lah para a duvida agora
estou fazendo meu Prepared Statement normal como sempre fiz
porém na hora do date ele da erro

 conexao = GerenciadorConexoes.pegarInstancia().abrirConexao();
            String sentenca = GerenciadorConexoes.pegarInstancia().pegarPropriedades("ADICIONAR_VISITA");
            PreparedStatement ps = conexao.prepareStatement(sentenca);
            
            //dia,hora, km_saida,km_retorno,hora_saida,hora_chegada
            
            ps.setInt(1, visita.getCod_carro());
            ps.setInt(2, visita.getCod_funcionario());
            ps.setInt(3, visita.getCod_cliente());
            ps.setDate(4, visita.getDia());

ele da esse erro aqui
:
no suitable method found for setDate(int,java.util.Date)
method java.sql.PreparedStatement.setDate(int,java.sql.Date,java.util.Calendar) is not applicable
(actual and formal argument lists differ in length)
method java.sql.PreparedStatement.setDate(int,java.sql.Date) is not applicable
(actual argument java.util.Date cannot be converted to java.sql.Date by method invocation conversion)

alguem pode me dar uma luz?

[/quote]

http://www.guj.com.br/java/224722-converter-data-em-doubleresolvido#1151251