后台报错类型:
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date。
实体类User中的部分代码如下。
Import java.util.date;
User{
Private Date birthday;
Public void getBirthday( ){
Return birthday;
}
public Date setBirthday(Date birthday){
This.birthday=birthday;
}
}
想说明的是这里的date是util.
Servlet中的部分代码如下。
String sql=“insert into user(birthday) values (?)”;
PrepareStatement pst=con.prepareStatement(sql);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String birthday=request.getParameter("birthday");
Date date = sdf.parse(birthday);
//想说明的是这里的date是java.util.date.
//“ ”中的birthday,从表框中输入进来的形式一定要符合//yyyy-MM-dd的格式。比如1998-08-09.
//不然就会报parse(转化)的异常。
//如果要输出转化的date的话,记得写成这样的形式
//System.out.println(sdf.format(date));
如果写成这样的形式的话,
//System.out.println(date)
//就会出现这样的情况:Tue Sep 08 00:00:00 CST 1998
//好,下面是重点
pst.setDate(1, date);
刚开始我这样子写的时候,报了java.util.date不能转化成java.sql.date.
原因是因为pst是预制对象,将时间跟数据库联系在一起,就是sql类型。
这里怎么把java.util.Date转化成java.sql.Date呢?
java.sql.Date date1=new java.sql.Date(date.getTime());
pst. setDate(1,date1).
这样子就完成了,不过getTime()方法只是针对年月日而言的。
针对年月日时分秒是这样的:
java.sql.Timestamp(java.util.Date().getTime());