insert into PetDiary (diary_pet_id,diary_date,diary_title,diary_weather,diary_context,diary_is_public,diary_author,diary_author_email)values(?,?,?,?,?,?,?,?)";
diary_date这个字段是Date类型的,调试看了下里面都有值的就是插不进去。请各位高手帮我看看。

解决方案 »

  1.   

    应该是你转的时间类型与数据库的格式不对称造成的你打印一下你组装的sql 然后到数据库中执行一下就知道了。
      

  2.   

    如果是oracle的话,需要把字符串转化成日期类型
    to_date(?,'yyyy-MM-dd HH24:mi:ss')
      

  3.   

    我的是sql2000 我是这样转的
    SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
    String diary_date=request.getParameter("diary_date"); 
    Date date=sdf.parse(diary_date)
      

  4.   

    我用了一个List集合 然后一个一个add添加进去的public boolean addPetDiary(PetDiary pd) {
    String sql = "insert into PetDiary (diary_pet_id,diary_date,diary_title,diary_weather,diary_context,diary_is_public,diary_author,diary_author_email)values(?,?,?,?,?,?,?,?)";
    List listValue = new ArrayList();
    listValue.add(pd.getDiary_pet_id());
    listValue.add(pd.getDiary_date());
    listValue.add(pd.getDiary_title());
    listValue.add(pd.getDiary_weather());
    listValue.add(pd.getDiary_context());
    listValue.add(pd.getDiary_is_public());
    listValue.add(pd.getDiary_author());
    listValue.add(pd.getDiary_author_email());
    if (BaseDAO.executeCommand(sql, listValue)) {
    return true;
    } else {
    return false;
    }
    }
      

  5.   

    你这里的date什么类型的 util 还是sql?
      

  6.   

    你是不是java里用的是java.util.Date下的Date
      

  7.   

    String diary_date=request.getParameter("diary_date"); 
    Date date=sdf.parse(diary_date)
     diary_date这个数据是什么格式  麻烦打出来看下吧
     与你的格式时间格式的模式对不上。
     
     细节决定成败
      

  8.   

    就是一个字符串2009-03-14 是java.util.Date下的Date
      

  9.   

    java.sql.Date sqlDate = new java.sql.Date(yourDate.getTime());
    ......listValue.add(sqlDate); 备注:BaseDAO.executeCommand这个方法是个人自己写的,谁也不知道这里面怎么封装的,正常来讲sqlserver2000,你插入一个字符串"2008-01-01",都能插进去,所以如果上面不行,那你就直接转化成字符串放到你的那个list中
      

  10.   

    SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); 
    String diary_date=request.getParameter("diary_date"); 
    Date date=sdf.parse(diary_date) 就是一个字符串2009-03-14 是java.util.Date下的Date
    2009-03-14 是YYYY-MM-DD格式的数据
    而你上面是指定格式yyyyMMdd格式的时间数据 所以不匹配。细节决定成败
      

  11.   

    我也试过的还是不行SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
      

  12.   

    因为我页面还用到了struts的<bean:write>标签把日期格式化,如果改成String显示不出来效果的
      

  13.   

    java.util.Date下的Date
    插入数据库 需要sql的DATE。