我想向数据库中插入日期型数据pstm.setDate(4,new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("hiredate")));//pstm为预处理,4为第四个位置 
插入数据 但编译时出现了如下错误org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 31 in the jsp file: /cha6/emp/addemp.jsp
The method setDate(int, Date) in the type PreparedStatement is not applicable for the arguments (int, Date)
28:  pstm.setInt(1,Integer.parseInt(request.getParameter("empno")));
29:  pstm.setString(2,request.getParameter("ename"));
30:  pstm.setString(3,request.getParameter("job"));
31:  pstm.setDate(4,(new SimpleDateFormat("yyyy-MM-dd")).parse(request.getParameter("hiredate")));32:  pstm.setFloat(5,Float.parseFloat(request.getParameter("sal")));
33:  pstm.setFloat(6,Float.parseFloat(request.getParameter("comm")));
34:  rs = pstm.executeQuery();这个真找不出原因了 求大虾指教

解决方案 »

  1.   

    Date 类型错了 需要java.sql.Date而非java.util.Date。
      

  2.   

    LZ 写一个日期转换的方法吧。在设参那里调用日期转换的方法。楼上那位兄台貌似说错了吧,是用 java.util.Date 而不是用 java.sql.Date 。
      

  3.   

    [align=center]
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");  return sdf.format(new Date());
    [/align]
      

  4.   

    用这个java.sql.Date sd = new java.sql.Date(new SimpleDateFormat("yyyy-mm-dd").parse("2012-05-26").getTime());
    pstm.setDate(4,sd);
      

  5.   

    解决了 new SimpleDateFormat("yyyy-MM-dd")).parse(request.getParameter("hiredate");返回的是java.util.Date 类, pstm.setDate(4,Date) 接受的是java.sql.Date类,所以要向下转型
    (java.sql.Date)new SimpleDateFormat("yyyy-MM-dd")).parse(request.getParameter("hiredate");这样就没问题了