您的位置:首页 > 数据库

jsp页面的date如何转换成数据库的date

2018-01-13 20:34 113 查看
后台报错类型:
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=[b]new[/b] 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=[b]new[/b] java.sql.Date(date.getTime());
  pst. setDate(1,date1).
  这样子就完成了,不过getTime()方法只是针对年月日而言的。
 
 
针对年月日时分秒是这样的:
java.sql.Timestamp(java.util.Date().getTime());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: