前端获取日期java.util.Date到dao层中java.sql.Date之间的转换问题

前端获取日期java.util.Date到dao层中java.sql.Date之间的转换问题,第1张

问题

前端使用表单获取到日期之后在servlet中封装到对象的Date类型的成员变量中,当获取的时候需要从String转为Date类型,如下:

		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date birthday = null;
        try {
            birthday = format.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println("获取到的生日:" + birthday);

java.util.Date默认的输出格式会是以下这种类型:

这里不需要担心,这里困惑了很久,怎么在插入到数据库表时变成yyyy-MM-dd的格式呢?

解决

通过查看源码可以知道,这个输出方式只是java.util.Date中toString()定义的输出格式,我们将日期传到dao层中进行插入时还需要将java.util.Date类型转换为java.sql.Date类型,转换完成之后就会变成数据库所接受的yyyy-MM-dd的数据格式进行插入了。具体转换方法如下:

preparedStatement.setDate(4, new java.sql.Date(student.getBirthday().getTime()));

转换方式参考文章:
Java连接数据库错误:class java.util.Date cannot be cast to class java.sql.Date 日期转换错误

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/739687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存