2016-10-03 58 views
0

我在这里红色的类似问题,但我没有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中,而不是一些实际的日期。

感谢您的帮助!

+1

您可以使用'java.sql.Timestamp'而不是'Date'。 – Titus

回答

1

您需要格式化您的日期。请尝试以下操作

Date date = new Date(); 
SimpleDateFormat format = new   SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ; 
String currentDateTime = format.format(date); 

然后在准备好的语句中使用setString。

0

要将Date插入到DATETIME字段中,它应该格式化为"yyyy-MM-dd HH:mm:ss"

另一种选择是使用TIMESTAMP字段代替。

+0

'TIMESTAMP'字段与'DATETIME'相比确实是有限的,并且不能代表2038年以后的值。这可能不是什么大问题,但是像Y2K一样,没有理由为失败而设置自己。 – tadman

+0

但我的日期已经这样格式化了。当从表单中读取日期时,它就是这种格式。但是,我应该把这个日期从数据库中的表单中读取出来时会出现问题。我想在这部分代码中 - ps.setDate是错误的。因为错误的查询...所以你认为我应该这 - 新日期(dezurstvo.getDatum()。getTime()) - 转换成字符串...但是我怎样才能使用setString当我的数据表中的字段是日期时间.. 。 – Svetlana

+0

您应该使用@Alan建议的SimpleDateFormat格式化日期,并使用'.setString'方法将其作为字符串插入。看看这个simila问题:http://stackoverflow.com/questions/2400955/how-to-store-java-date-to-mysql-datetime –

相关问题