Página Inicial do Fórum > Java Básico

Transformar java.util.Date em java.sql.Date



Criar novo tópico   Responder tópico


  1. sylviomorais
    Posts:10


    Comment Arrow

    Publicado em: 20/09/2010 20:43:25

    Pessoal,

    Primeiro peso desculpas por postar essa duvida por que já deve ter varios post sobre este assunto, é que estou fazendo meu TCC na correria e este problema já me tirou do serio....
    Se alquem poder ajudar fico grato, segue a duvida:

    Eu pego o campo dt_nasc do JTextField e incluo dentro do al.setData_Nasc.

    Em seguida tento fazer a persistência no banco Postgres, quando tento fazer o UPDATE recebo erro Java.util.Date cannot be cast to java.sql.Date

    sql = c.prepareStatement("UPDATE pessoa SET data_nasc = ?, sexo = ?, est_civil = ?, email = ?,cpf = ?,rg = ?,nome = ?,logradouro = ?,numero = ?,complemento = ?,bairro=?,cidade=?,estado=?,cep=? WHERE ID_PESSOA = ?");
    sql.setDate(1,(Date) al.getData_Nasc());


    Mais uma vez se alquem puder me ajudar fico grato.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 21/09/2010 05:43:00

    sylviomorais
    Pessoal,

    Primeiro peso desculpas por postar essa duvida por que já deve ter varios post sobre este assunto, é que estou fazendo meu TCC na correria e este problema já me tirou do serio....
    Se alquem poder ajudar fico grato, segue a duvida:

    Eu pego o campo dt_nasc do JTextField e incluo dentro do al.setData_Nasc.
    SimpleDateFormat dataf = new SimpleDateFormat("dd/MM/yyyy");
    al.setData_Nasc(dataf.parse(dt_nasc.getText()));

    Em seguida tento fazer a persistência no banco Postgres, quando tento fazer o UPDATE recebo erro Java.util.Date cannot be cast to java.sql.Date

    sql = c.prepareStatement("UPDATE pessoa SET data_nasc = ?, sexo = ?, est_civil = ?, email = ?,cpf = ?,rg = ?,nome = ?,logradouro = ?,numero = ?,complemento = ?,bairro=?,cidade=?,estado=?,cep=? WHERE ID_PESSOA = ?");
    sql.setDate(1,(Date) al.getData_Nasc());


    Mais uma vez se alquem puder me ajudar fico grato.


    Bom dia.

    Pelo título voce já sabe, mas para alguem que não conhece: a mensagem do erro indica que o Java está necessitando de um objeto de java.sql.Date mas está recebendo um java.util.Date.

    Problema bastante comum quando se usa o JDBC: ele tem uma classe própria para tratar de datas (teoricamente sem os componentes do horário: horas, minutos, segundos e milisegundos). Por isso o "setDate" exige um java.sql.Date em vez do java.util.Date que voce recebe do "SimpleDateFormat".

    Infelizmente o nome dessa classe tambem é "Date" o que acaba causando confusão.

    Para criar um java.sql.Date, faz algo assim:

    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. sylviomorais
    Posts:10


    Comment Arrow

    Publicado em: 20/09/2010 20:43:25

    Amigão muito obrigado, fiz como vc mencionou e deu certo!!!!!!

    VLW




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico