将日期对象存储在sqlite数据库中

时间:2010-05-29 11:20:30

标签: java sqlite date jdbc

我在我的Java项目中使用数据库,我想在其中存储日期,第5和第6个参数是Date Object。我使用了下面的解决方案,但我在指定的行中有错误:

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 个答案:

答案 0 :(得分:6)

我无法从您的代码中判断出来,但您必须使用java.sql.Date,而不是java.util.Date。

以下是从实用程序日期实例转换为SQL日期实例的方法:

java.sql.Date date = new java.sql.Date(utilDate.getTime());

答案 1 :(得分:1)

我想你可以在这里阅读详细的答案:How to insert date in sqlite through 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>));