Chaîne en java.sql.Date

Je me rends compte de ce qui a été demandé à beaucoup. Je n'ai effectivement regarder. J'ai passé des heures à regarder autour et essayer de comprendre cela. Je suis censé faire un programme qui stocke ce qui équivaut à une liste de rendez-vous dans une base de données, avec une description, la date, l'heure de début et l'heure de fin. Il a de prendre une entrée de l'utilisateur à ajouter ou annuler des rendez-vous, pour autant que je sais que cela signifie que j'ai besoin de convertir une chaîne de caractères à une date.

Ce sont mes importations:
importer java.io.Fichier;
importer java.io.IOException;
importer java.sql.Connexion;
importer java.sql.Date;
importer java.sql.PreparedStatement;
importer java.sql.ResultSet;
importer java.sql.ResultSetMetaData;
importer java.sql.SQLException;
importer java.sql.Temps;
importer java.texte.DateFormat;
importer java.texte.ParseException;
importer java.texte.SimpleDateFormat;
importer java.util.ArrayList;
importer java.util.Scanner;

Comme vous pouvez le voir, pas de java.util.Date là. Ici, c'est le peu où j'obtiens le message d'erreur:

private static java.sql.Date getDay()
{
    Scanner in = new Scanner(System.in);
    String input;
    Date apptDay = null;
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    java.sql.Date sqlDate;
    System.out.println("\nPlease enter the date of the appointment, format: yyyy/mm/dd");
    while(apptDay == null)
    {
        try
        {
            input = in.next();
            apptDay = (Date) df.parse(input);
        }
        catch(ParseException e)
        {
            System.out.println("Please enter a valid date! Format is yyyy/mm/dd");
        }
    }
    sqlDate = new Date(apptDay.getTime());
    return sqlDate;
}

J'ai ajouté java.sql.Dates et couché sur un tas en essayant de le faire fonctionner, mais c'est encore de me donner cette:

Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at Calendar.getDay(Calendar.java:47)

Toutes les idées sur ce que je fais mal ou de façon de faire ce travail serait très apprécié.

Edit: j'ai pensé que peut-être il serait utile si j'ai ajouté le code qui est à l'appel de cette sorte peut-être qu'il sera plus claire de la façon dont je suis en train de l'utiliser, voici donc la addAppointment() la méthode, de sorte que vous pouvez voir où getDay() est appelée et où il va.

public static void addAppointment() throws SQLException
{
    //get the info
    String desc = getDesc();
    java.sql.Date apptDay = getDay();
    Time[] times = getTime();
    Time startTime = times[0];
    Time endTime = times[1];
    int key;

    Connection conn = SimpleDataSource.getConnection(); //connect to the database

    try
    {
        PreparedStatement max = conn.prepareStatement("SELECT MAX(ID) FROM Calendar");
        ResultSet result = max.executeQuery();
        key = result.getInt("ID") + 1; 
        PreparedStatement stat = conn.prepareStatement(
                "INSERT INTO Calendar " +
                "VALUES (?, ?, ?, ?, ?)"); 
        stat.setInt(1, key);
        stat.setString(2, desc); 
        stat.setDate(3, apptDay);
        stat.setTime(4, startTime);
        stat.setTime(5, endTime);
        stat.execute();
        System.out.println("\nAppointment added!\n");
    }
    finally
    {
        conn.close(); //finished with the database
    }
}

source d'informationauteur Tajha