Хранить объект даты в базе данных sqlite - PullRequest
2 голосов
/ 29 мая 2010

Я использую базу данных в своем проекте Java и хочу сохранить в ней дату, 5-й и 6-й параметры - объект даты. Я использовал решение ниже, но у меня есть ошибки в указанных строках:

PreparedStatement creerFilm = connecteur.getConnexion().prepareStatement(
        "INSERT INTO FILM (ID, REF, NOM, DISTRIBUTEUR, DATEDEBUT, DATEFIN) "+
        "VALUES (?, ?, ?, ?, ?, ?)");
creerFilm.setInt(1, getId());
creerFilm.setString(2, getReference());
creerFilm.setString(3, getNomFilm());
creerFilm.setString(4, getDistributeur());
// These next two lines
creerFilm.setDate(5, new Date (getDateDebut().getDate()));
creerFilm.setDate(6, new Date (getDateFin().getDate()));
// The above two lines
creerFilm.executeUpdate();
creerFilm.close();

Можете ли вы помочь мне исправить это, пожалуйста?

Спасибо

Ответы [ 2 ]

6 голосов
/ 29 мая 2010

Я не могу точно сказать из вашего кода, но вы должны использовать java.sql.Date, а не java.util.Date.

Вот как вы конвертируете из экземпляра даты утилиты в экземпляр даты SQL:

java.sql.Date date = new java.sql.Date(utilDate.getTime());
1 голос
/ 24 марта 2013

Я думаю, что подробный ответ вы можете прочитать здесь: Как вставить дату в sqlite через Java

Вкратце, вы можете вставить дату как setString (илиsetInt или setLong (см. ссылку выше), но не setDate):

PreparedStatement ps = connection.prepareStatement(<your sql>);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ps.setString(1, df.format(<your date>));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...