JDBC下Date类型转换问题

一、前言

在学过MVC后,其中的DAO层是负责与数据库进行进行数据交互,而service层个servlet层需要数据时,不允许直接向数据库要,而是通过Dao层来获取相关数据。这个时候,就引出一个规定“java.sql.”包下类只能出现在Dao层,而不能出现在其他层中。
所以我们在创建模型类的时候,所用的Date类型是“java.util.Date”,当一个模型类的对象想要存储到数据库时,我们就需要对Date类型进行转换。即,将“java.util.Date”转换成“java.sql.Date、Time、Timestamp”。

二、相关概念

1、对应的关系

JDBC下Date类型转换问题_第1张图片

2、java.util.Date与java.sql.Date、Time、Timestamp的关系

java.util.Date是java.sql.Date、Time、Timestamp类的父类

三、相关的转换

1、将java.util.Date转化成java.sql.Date、Time、Timestamp

(1)步骤

  • 把util的Date转换成毫秒值;
  • 使用毫秒值来创建sql下的Date、Time、Timestamp;

(2)代码实现

java.util.Date date = new java.util.Date();
long l = date.getTime();

java.sql.Date sqlDate1 = new java.sql.Date(l);
java.sql.Date sqlDate2 = new java.sql.Time(l);
java.sql.Date sqlDate3 = new java.sql.Time(l);

2、将java.sql.Date、Time、Timestamp转化成java.util.Date

(1)原理
因为java.util下的Date是java.sql下的Date、Time、Timestamp的父类,所以我们可以直接引用即可。
(2)代码实现

java.util.Date doem = new java.sql.Date();

java.util.Date doem = new java.sql.Time();

java.util.Date doem = new java.sql.Timestamp();

你可能感兴趣的:(JDBC下Date类型转换问题)