Inserir data no Banco MYSQL [RESOLVIDO]

uso este método para inserir uma turma no banco de dados

  public void inserir(Turma turma) throws SQLException {
        String sql = "INSERT INTO turma( nome,instrutor, datainicio, vaga, dataconclusao) values (?,?,?,?,?)";
        PreparedStatement smt = conexao.pegarConexao().prepareStatement(sql);

        smt.setString(1, turma.getNome());
        smt.setInt(2, turma.getInstrutor().getCodigo());
        smt.setDate(3,(java.sql.Date) turma.getDataInicio());
        smt.setString(4, turma.getVagas());
        smt.setDate(5,(java.sql.Date) turma.getDataConclusao());
      
        smt.execute();
        smt.close();

    }


Mas da erro para inserir a data

este é o meu botão cadastrar


 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
             TurmaDAO turmaDAO = new TurmaDAO();
        Turma turma = new Turma();

        turma.setNome(CampNome.getText());
        turma.setDataInicio(CampDataInicil.getDate());
        turma.setDataConclusao(CampDataConclusao.getDate());
        turma.setInstrutor((Instrutor) Instrutor.getSelectedItem());
        turma.setHorario(CampCargaHoraria.getText());
        turma.setVagas(CampVaga.getText());

        JOptionPane.showMessageDialog(null, "Cadastro feito com sucesso");

        CampNome.setText("");
        Instrutor.setSelectedIndex(-1);
        CampCargaHoraria.setText("");


        try {
            turmaDAO.inserir(turma);
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this, "Erro ao criar "+ex.getMessage());
        }
    }                                        



aparece este erro

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at autoescola.bancosdedados.TurmaDAO.inserir(TurmaDAO.java:39)
at autoescola.interfaceusuario.CadastroTrurma.jButton1ActionPerformed(CadastroTrurma.java:238)
at autoescola.interfaceusuario.CadastroTrurma.access$100(CadastroTrurma.java:26)
at autoescola.interfaceusuario.CadastroTrurma$2.actionPerformed(CadastroTrurma.java:161)

para inserir uma data no PreparedStatment você não precisa fazer cast para java.sql.Date

smt.setDate(3, turma.getDataInicio());

Exato.

mas quando faço dessa forma smt.setDate(3, turma.getDataInicio());

da erro informa que são tipos incompatíveis

Estou usando o import java.util.Date
tem algun problema nisso?

Consegui resolver
ficou assim


public void inserir(Turma turma) throws SQLException {
        String sql = "INSERT INTO turma( nome,instrutor, datainicio, vaga, dataconclusao) values (?,?,?,?,?)";
        PreparedStatement smt = conexao.pegarConexao().prepareStatement(sql);

        smt.setString(1, turma.getNome());
        smt.setInt(2, turma.getInstrutor().getCodigo());
        smt.setDate(3, new Date(turma.getDataInicio().getTime()));
        smt.setString(4, turma.getVagas());
        smt.setDate(5, new Date(turma.getDataInicio().getTime()));
      
        smt.execute();
        smt.close();

    }

usei o import java.sql.Date