Não estou conseguindo salvar a data do Jcalendar no banco de dados, alguem poderia me ajudar?
// se o erro for simples me desculpem, sou aprendiz ainda em Java.
Código que executa quando clica no botão salvar (VIEW):
public void cadastro(){
try {
Variavel c1 = new Variavel();
c1.setNome(jTnome.getText());
c1.setNascimento( (java.sql.Date) jTnascimento.getDate()); // o erro e nessa linha
c1.setSexo(jCsexo.getSelectedItem().toString());
c1.setCPF(jTcpf.getText());
cadastroDao dao = new cadastroDao();
dao.adiciona(c1);
} catch (SQLException ex) {
Logger.getLogger(GerenciarClientes.class.getName()).log(Level.SEVERE, null, ex);
}
}
A parte que ele manda pro banco de Dados(model):
[code]public void adiciona(Variavel c1) throws SQLException{
String sql = “insert into cliente (nome,Nascimento,Sexo,”
+ “CPF)”
+ " values (?,?,?,?);";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, c1.getNome());
stmt.setDate(2,new java.sql.Date(c1.getNascimento().getTime()));
stmt.setString(3, c1.getSexo());
stmt.setString(4, c1.getCPF());
stmt.execute();
stmt.close();
}
[/code]
Erro:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at View.GerenciarClientes.cadastro(GerenciarClientes.java:649)
linha do erro(GerenciarClientes.java:649):
c1.setNascimento( (java.sql.Date) jTnascimento.getDate());
a variavel de controle (control);
[code]public class Variavel {
private int matricula;
private String nome;
private Date nascimento;
private String sexo;
private String CPF;
// com construtor vazio e um inteiro
// e com get e set
[/code]
banco de dados:
CREATE TABLE IF NOT EXISTS `Academia`.`cliente` (
`matricula` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(45),
`Nascimento` Date,
`Sexo` VARCHAR(10),
`CPF` VARCHAR(14),
PRIMARY KEY (`matricula`)
)
ENGINE = InnoDB
Desculpe qualquer coisa, é que meu professor nao ensinou a trabalhar com datas e eu estou tentando fazer um programa com aquele Jcalendar.
o codigo é bem maior, mas tirei algumas coisas pra nao ficar gigante.