在不使用预准备语句的情况下将日期插入数据库

时间:2014-08-01 01:54:15

标签: java sql date insert

我很难将此日期插入moviesTbl。我预计会在没有准备好的情况下这样做。当我尝试下面的时候,我收到了错误:

  

线程“main”中的异常   net.ucanaccess.jdbc.UcanaccessSQLException:用户缺少权限或   找不到对象:RELEASED

以下是代码:

String date = "2012-12-28";
java.sql.Date released = java.sql.Date.valueOf(date);
qtd.update("insert into moviesTbl (Title, ReleaseDate, Genre) VALUES ('Harry Potter', released, 'drama')");

如何在没有预备声明的情况下插入日期?

1 个答案:

答案 0 :(得分:1)

引号内有变量released。所以SQL错误就是说"我找不到释放的变量"。你需要将你的变量放在java中,这样就可以将值放入SQL中,否则SQL服务器正在寻找一个名为release的变量,但当然它不在那里,它在你的Java中。

String date = "2012-12-28";
qtd.update("insert into moviesTbl (Title, ReleaseDate, Genre) VALUES ('Harry Potter', '"+date+"', 'drama')");

正如@ user2067753所述,不同的数据库具有不同的格式来获取和设置日期时间格式。假设您正在使用MS SQL服务器,那么following this post可以执行类似这样的操作

java.util.Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2012-12-28");
java.text.SimpleDateFormat msSqlDateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qtd.update("insert into moviesTbl (Title, ReleaseDate, Genre) VALUES ('Harry Potter', '"+msSqlDateFormat.format(date)+"', 'drama')");