尝试将数据插入数据库表时,java.util.Date 无法转换为 java.sql.Date [关闭]
Posted
技术标签:
【中文标题】尝试将数据插入数据库表时,java.util.Date 无法转换为 java.sql.Date [关闭]【英文标题】:java.util.Date cannot be cast to java.sql.Date while trying to insert data to database table [closed] 【发布时间】:2015-03-06 05:21:35 【问题描述】:String query1 ="插入 ORDER_T(ORDER_ID,ordernumber,ordertotal,ORDERDESCRIPTION,CREATEDDATE," + "UPDATEDDATE) 值(?,?,?,?,TO_DATE(?,'dd/mm/yyyy'),TO_DATE(?,'dd/mm/yyyy'))";
preparedSt=con.prepareStatement(query1);
preparedSt.setString(1, order.getOrderId());
preparedSt.setString(2, order.getOrderNumber());
preparedSt.setString(3, order.getOrderDescription());
preparedSt.setBigDecimal(4, order.getOrderTotal());
preparedSt.setDate(5,(java.sql.Date) order.getCreatedDate());// java.util.Date cannot be cast to java.sql.Date
preparedSt.setDate(6, (java.sql.Date) order.getUpdatedDate());// java.util.Date cannot be cast to java.sql.Date
result=preparedSt.executeUpdate();
控制台 连接成功!! java.lang.ClassCastException:java.util.Date 不能转换为 java.sql.Date 在 com.cloudbill.order.process.OrderProcessorImpl.placeOrder(OrderProcessorImpl.java:129) 在 com.cloudbill.order.bo.OrderMain.main(OrderMain.java:174) java.lang.ClassCastException:java.util.Date 不能转换为 java.sql.Date 在 com.cloudbill.order.process.OrderProcessorImpl.placeOrder(OrderProcessorImpl.java:129) 在 com.cloudbill.order.bo.OrderMain.main(OrderMain.java:174)
【问题讨论】:
【参考方案1】:试试下面的代码
java.sql.Date sqlCreatedDate = new java.sql.Date(order.getCreatedDate().getTime());
java.sql.Date sqlUpdatedDateDate = new java.sql.Date(order.getUpdatedDate().getTime());
prepairedSt.setDate(5,sqlCreatedDate);//
prepairedSt.setDate(6, sqlUpdatedDateDate);//
【讨论】:
谢谢 thomas..ur 代码工作正常..现在问题解决了。以上是关于尝试将数据插入数据库表时,java.util.Date 无法转换为 java.sql.Date [关闭]的主要内容,如果未能解决你的问题,请参考以下文章