jdbc加tapestry做新增。pstmt.setDate(5, register.getBirthday()(setdate是sql date)) 而从表单得到的应该是util date , 我从vo里把时间转成sql date 报错:Could not find a coercion from type java.util.Date to type java.sql.Date.(大致意思应该就是得到的是util date 不能转成sql date),pstmt.setDate(5, (java.sql.Date)register.getBirthday()) 这样强转tapestry直接报错 An unexpected application exception has  occurred.*org.apache.tapestry5.runtime.ComponentEventException
      java.util.Date(我觉得就是不让强转)  我该怎么办呢?           时间控件用的是tapestry里的<t:datefield>.顺便问一下oracle里的date类型是util date 还是sql date;String sql = "Insert Into employee(eid,name,dept,age,salary,birtyday,gender) Values(2,?,?,?,?,to_date(?,'yyyy-MM-dd','女')";<div>
<t:label for="birthday" />
<t:DateField t:id="birthday" value="register.birthday" format="yyyy-MM-dd" label="生**日"/>
</div>

解决方案 »

  1.   

    new java.sql.Date(date.getTime());
      

  2.   

    可用new java.sql.Date(new java.util.Date()getTime()), 不过此种转换只有年月日,如果带有小时分秒的话,可用java.sql.Timestamp(java.util.Date().getTime());
      

  3.   

    直接用util date 就行了
      

  4.   

    oracle 直接用java.util.Date就成了
      

  5.   

    恩,我都试过,转完后得到的是long,这样直接就当参数穿了。执行就报ORA:08147,字符型能否转成日期型。
    虽然一般都用util date 但是遇到了,就想搞定它。 请教转完之后怎么处理
      

  6.   

    存的时候用:new java.sql.Date(new java.util.Date()getTime())
    取的时候直接get就好啦~~~java.sql.Date 是java.util.Date的子类,搞清这个关系就OK了~
      

  7.   

    字符串转日期型的问题就用
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    sdf.pares(timeString);这个返回的是java.util.Date类型