标红的是我出错的代码
        java.util.Date date=new java.util.Date(); 
        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        String currentTime=df.format(date);
        Statement settime=con.createStatement();
settime.executeUpdate("update now  set time='"+currentTime+"'");
        报错显示为:
        javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] UPDATE 语句的语法错误。
        这是哪里错了啊,请大家指导下。谢谢哈

解决方案 »

  1.   

    可能没取到改成这个 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    还有Statement效率不好  用PreparedStatement
      

  2.   

    kk?access是kk而不是hh?
    饿我又孤陋寡闻了
      

  3.   

    已经取到了,有out.println()可以打得出来。
    另外求解什么是Statement和Preparedstatement?
      

  4.   

    settime.executeUpdate("update now set time=to_date('"+currentTime+"')");
    time是日期字段,你set进去的是字符串肯定会有问题啊。
     你用什么数据库你就把他转成日期类型啊。
    如果是oracle 应该是上面的写法。
      

  5.   

    Statement和Preparedstatement都是陈述对象  本人博客里面有java面试题 去下载吧  里面有介绍  就不细说了
      

  6.   

    我用的是access,刚才自己乱试,把time变成[time]之后居然就可以了,这是为什么呐?
      

  7.   

    settime.executeUpdate("update now set time=to_date('"+currentTime+"','YYYY-MM-DD HH24:MI:SS')");
      

  8.   


    preparedStatement可以防止sql注入,不用拼接sql,推荐使用
      

  9.   

    说明 time是数据库保留字段  若要使用为了区分必须加上[ ]
      

  10.   

    now是保留字,加上[]或者`才可以。