哪位兄弟告诉我
ps.setDate(4,c.getInputtime());
这句代码为什么会错.  c.getInputtime() 返回值是 Date 类型
用的是Oracle 数据库public boolean add(Complain c){
        boolean flag = false;
        PreparedStatement ps = null;
        String sql = "insert into test_complain values (?,?,?,?,?)";
        try{
            conn.prepareStatement(sql);
            ps.setString(1,c.getPerson());
            ps.setString(2,c.getPersonname());
            ps.setString(3,c.getReason());
            ps.setDate(4,c.getInputtime());
            ps.setString(5,c.getRe());
            if(ps.executeUpdate()>0){
                flag = true;
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            return flag;
        }
        
    }

解决方案 »

  1.   

    很有可能是时间类型不匹配!
    楼主的c.getInputtime() java.sql.date还是java.util.date?
      

  2.   

    ps.setDate的参数需要java.sql.Date,但是现在c.getInputtime()得到的应该是java.util.Date,类型不匹配,所以报错
      

  3.   

    ps.setDate的参数需要java.sql.Date,但是现在c.getInputtime()得到的应该是java.util.Date,类型不匹配,所以报错那要怎么解决呢? 谢谢
      

  4.   

    如果真是这样,那就ps.setDate(4,new java.sql.Date(c.getInputtime()));
      

  5.   

    有这个构造函数吗?是不是要转成毫秒啊,new java.sql.Date(c.getInputtime().getTime())
      

  6.   

    是我弄的话,我在外部只传时间格式的字符串数据,然后把参数代入SQL语句,等SQL语句去把字符串格式成时间!不知道你什么数据库!SQLSERVER的话我没有弄过,你就在外面把时间转换下吧!
      

  7.   


    new java.sql.Date(c.getInputtime().getTime())
    依赖于一个固定的格式总是不好的
      

  8.   

    new java.sql.Date(c.getInputtime().getTime())
    就这样...
      

  9.   

    是java.util.date和java.sql.date的转换问题
      

  10.   

    ps.setDate(4,new java.sql.Date(c.getInputtime()));
      

  11.   

    java中sql包和util包中的时间类型是不同的,类型不匹配哦。
    你改一下试试。
      

  12.   

    楼主参考一下这个帖子http://zhidao.baidu.com/question/80404753.html就能把java.utile.Date类型转换为java.sql.Date类型插入到数据库中
      

  13.   

    记得导入的是java.util.date类就行了。
    不能用java.sql.date
      

  14.   

    应该数据库使用的是date(yyyymmdd)类型,sql.date使用的是一个时间字符串(long)吧?
      

  15.   

    设置时间的话 我做的话 会用simpledateformat格式化时间
    然后ps.setString(4,c.getInputtime());
      

  16.   

    何必那么麻烦呢
    大多数参数都可以用
    ps.setObject(4,c.getInputtime());