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

本文介绍了一种常见的Java后台错误——无法将java.util.Date转换为java.sql.Date的问题,并提供了具体的解决方案,包括如何正确地进行日期类型的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台报错类型:

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;

}

}

 

想说明的是这里的dateutil.

 

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);

 

//想说明的是这里的datejava.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());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值