我在我的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();
你能帮我解决一下吗?
谢谢
答案 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>));