Olá pessoal, estou com dificuldades em manipular Datas no java, gostaria da ajuda de vcs!!!
O programa deve pegar a data atual, quando clicado o botão novo, e mostrá-la na tela, até ai deu certo
O problema é que da erro na hora de efetuar o cadastro no banco
Aqui o erro:
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
//formatando data
Date datas = new Date();
String dia = ""+datas.getDate();
String mes = ""+String.valueOf(datas.getMonth()+1);
String ano = ""+(1900 + datas.getYear());
if(Integer.parseInt(mes)<=9)
mes = "0"+mes;
jTData.setText((dia+"/"+mes+"/"+ano));
//fim da formatação
//jTData.setText("");
jCEscova.setSelectedItem("--");
jTTintura.setText("");
jCOutros.setSelectedItem("--");
jTMatizacao.setText("");
jTPreco.setText("");
jCPgto.setSelectedItem("--");
jTRest.setText("");
jTObs.setText("");
} [/code]
Você está tentando usar um java.util.Date onde deve ser um java.sql.Date. Na sua exceção, deve indicar a linha em que ocorre o problema.
Veja, se está pegando o retorno de uma conexão JDBC, de uma Query, é sempre um java.sql.Date (pode ser Timestamp, mas vamos imaginar só java.sql.Date) e não java.util.Date.
Ta, precisamos saber aonde você está enviando um java.util.Date, para um java.sql.Date, se puder postar o método com erro, indicando a linha, facilitaria bastante.
Como o nel disse, você provavelmente está tendo esse problema em algum método de persistência.
Mesmo sendo filha (java.sql.Date extende java.util.Date) você não pode fazer essa conversão. Acredito que isso: cf.getData() retorne um java.util.Date, correto ?
Ai, para converter, é muito simples, basta fazer:
stmt.setDate(2, new java.sql.Date ( cf.getData().getTime() );