Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java将日期时间插入数据库_Java_Mysql_Datetime_Prepared Statement - Fatal编程技术网

使用java将日期时间插入数据库

使用java将日期时间插入数据库,java,mysql,datetime,prepared-statement,Java,Mysql,Datetime,Prepared Statement,我想使用Java和一条准备好的语句将datetime插入MySql数据库: Calendar cal = Calendar.getInstance(); PreparedStatement stmnt = db.PreparedStatement("INSERT INTO Run " + "(Time) VALUE (?) "); stmnt.setDate(1, new java.sql.Date(cal.getTime()));

我想使用Java和一条准备好的语句将datetime插入MySql数据库:

Calendar cal = Calendar.getInstance();
PreparedStatement stmnt = db.PreparedStatement("INSERT INTO Run " +
                       "(Time) VALUE (?) ");
    stmnt.setDate(1, new java.sql.Date(cal.getTime()));
    stmnt.executeQuery();  
注意:当前有一个错误-在这里找不到符号(java.sql.Date)第4行

db是一种包装类的实例,它公开了我从java.sql中需要的东西——它只是从我的连接对象中获取一条准备好的语句

时间(列)是我数据库中的日期时间,我只能看到setDate和setTime方法,但我想同时存储这两种方法-而且我的代码无论如何都不起作用;-)

如果有人能给我一些关于使用预先准备好的语句在MySql数据库中插入组合日期时间(当前时间将是一个很大的帮助,因为这是我的第一个目标)的建议,我将非常感激


谢谢

java.sql.Date的构造函数需要很长的时间(自1970年以来为毫秒) 要从java.uitl.Calendar中获取毫秒,请使用

您的代码是:

Calendar cal = Calendar.getInstance();
PreparedStatement stmnt = db.PreparedStatement("INSERT INTO Run " + "(Time) VALUE (?) ");
stmnt.setDate(1, new java.sql.Date(cal.getTimeInMillis()));
stmnt.executeQuery();

下面的代码应该允许您插入毫秒精度的日期。我在HSQLDB、Sybase、SQL Server和MySql中使用过它,没有任何问题

java.util.Date date = getMyDate();
if (date == null) {
    statement.setNull(insertionIndex, Types.TIMESTAMP);
} else {
    statement.setTimestamp(insertionIndex, new Timestamp (date.getTime()));
}

杰出的这就是问题所在,斯坦奇,这个错误看起来如此无关。非常感谢你的帮助。