Problema Com DATA, CALENDAR, MVC

Sendo bem direto ao assunto: Tenho uma aplicação simples em em JAVASE.
Depois de 3 dias pesquisando aqui no fórum não encontrei nada concreto então preciso realmente de ajuda. O caso e o seguinte:
Consigo fazer o CRUD legal ok, mais em relação a data eu travei tem 3 dias.
Tentei fazer semelhate a apostila fj-21 stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
Mais no local getTimeInMillis()) quero passar a data que o usuário digitar formatar e jogar no banco, tudo esta funcionando só que quero salvar no lugar da data atual.
Uma data que usuario digitar eu sei que tenho que formata ela. Mais me perdi em relação de Porque usar Date ou Calendar? E como e onde eu faço isso?

public void adiciona(Carro carro) {
        sql = "insert into carro (descricao,ano, cod_categoria)values(?,?,?);";
        try {
            PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setString(1, carro.getDescricao());
            stmt.setDate(2, new Date(carro.getAno().getTimeInMillis()));//Quero colocar passar aqui a data 
                                                                                                    //que o usuario digitar eu sei simpledateformat(Mais me perdi não sei como utilizar)
            stmt.setInt(3, carro.getCodCategoria());
            stmt.execute();
            stmt.close();
        } catch (SQLException e) {
            throw new RuntimeException("Erro ao executar sql: " + e.getMessage());
        }
    }

na interface eu fiz a sim:

carro.setAno(jTxtAnoVeiculo.getText());

MODEL esta a sim:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.juliano.model;

import java.util.Calendar;

/**
 *
 * @author Juliano Vince
 */
public class Carro {
    private int codCarro;
    private int codCategoria;
    private String descricao;
    private Calendar ano ;

    public int getCodCarro() {
        return codCarro;
    }

    public void setCodCarro(int codCarro) {
        this.codCarro = codCarro;
    }

    public int getCodCategoria() {
        return codCategoria;
    }

    public void setCodCategoria(int codCategoria) {
        this.codCategoria = codCategoria;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Calendar getAno() {
        return ano;
    }

    public void setAno(Calendar ano) {
        this.ano = ano;
    }
}

OBS: Solicito se caso você não queria ajudar não atrapalhe porque eu pesquisei feito loco isso li muita coisa que não consegui intender e antes de fazer eu preciso saber o porque e como fazer preciso realmente de ajuda e sei que isso pode servi pra outras pessoas futuramente. Obrigado a Todos que ajudar!

Isso aqui deve te ajudar.

http://www.botecodigital.info/java/manipulando-datas-em-java/

No seu caso, só é necessário parsear a data com um DateFormat, setar num objeto Calendar e setar
na sua bean.

natanaelv

Obrigado deu tudo certo Show de bola não sei se fico da melhor forma possível, mais deu alguns erros mesmo olhando o tutorial.
Mais com os novos erros eu fui lendo outros tópicos aqui no GUJ mesmo e até que em fim saiu tudo ok.
Mais essa parte de Calendar e Date não esta tão clara na mente o tanto que eu pretendo que esteja, mais a parte do CRUD está tudo ok.
Interessante que na faculdade até Professores falaram pra utilizar String(No Banco) e criar uma string no lugar de utilizar Date ou Calendar.
Faculdade e só um diploma na mão e você que tem que correr atras do conhecimento.

Em fim Obrigado.

Sempre foi meio chato trabalhar com datas em Java.
Mas na versão 8 do JDK já teremos uma nova API de Datas que vai facilitar pakas.

Você pode ser sobre ela aqui: http://www.infoq.com/br/news/2013/02/java-time-api-jdk-8.

Ou pode pesquisar sobre a JSR-310 também.