我在這裏紅色的類似問題,但我沒有t find solution for my problem, how to insert datetime field in mySql database using PreparedStatement in java? I didn
找到任何與此問題和PreparedStatement有關的東西。如何在java中使用PreparedStatement在mySql數據庫中插入datetime字段?
所以,我有這樣的代碼:
public void sacuvajDezurstva(List<Dezurstvo> listaDezurstava) throws SQLException {
String sqlSacuvajDezurstva = "INSERT INTO dezurstvo (Datum,IspitniRokID, NastavnikID, PredmetID) VALUES (?,?,?,?)";
PreparedStatement ps = konekcija.prepareStatement(sqlSacuvajDezurstva);
for (Dezurstvo dezurstvo : listaDezurstava) {
ps.setDate(1, new Date(dezurstvo.getDatum().getTime()));
ps.setLong(2, dezurstvo.getIspitniRok().getIspitniRokID());
ps.setLong(3, dezurstvo.getNastavnik().getNastavnikId());
ps.setLong(4, dezurstvo.getPredmet().getPredmetID());
ps.executeUpdate();
}
konekcija.commit();
}
此代碼的工作,但這裏的第一個PS parametar這是日期是問題,因爲在數據庫中只有這個屬性的部分 - 日期被保存,正是一天,當我使用這種方法時,會保存月份和年份。但小時,分鐘和秒只是00:00:00。因此,在整個數據庫的日期如下:
2016年6月26日00:00:00
此列在我的數據表,我插入日期爲datetime型。當我調試時,我發現this - dezurstvo.getDatum()。getTime())具有通過窗體插入的日期的正常值。所以它有一天,一個月,一年,一小時,幾分鐘和幾秒鐘,但是這個ps.setDate,acctualy ps只有日,月和年的值。
我認爲問題出在SQL查詢但我不知道如何做到這一點,當我只有?在VALUES中,而不是一些實際的日期。
感謝您的幫助!
您可以使用'java.sql.Timestamp'而不是'Date'。 – Titus