JavaWeb学习十八(util包下的Date和sql包下的Date的转换)

数据库类型与java中类型的对应关系:
DATE->java.sql.Date
TIME->java.sql.Time
TIMESTAMP->java.sql.Timestamp

在写web项目的时候,在除DAO以外的地方是不允许出现java.sql包下的东西,但是往往我们会看到一些情况

  • 域对象(domain)中的所有属性不能出现java.sql包下的东西!即不能使用java.sql.Date
  • ResultSet#getDate返回的是java.sql.Date()
  • PreparedStatement#setDate(int,java.sql.Date),其中第二个参数也是java.sql.Date

那怎么解决这些情况呢?

首先java.sql.Date因为是java.util.Date的子类,所以java.sql.Date转java.util.Date并没有什么问题

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

那么我们就该想想怎么解决java.util.Date转java.sql.Date,在对于java.sql.Date、Time、Timestamp构造器都存在着对应的有参构造器Date(long time)、Time(long time)、Timestamp(long time)

所以我们可以把util的Date转换成毫秒值
在使用毫秒值创建sql的Date、Time、Timestamp

比如如下所示

java.util.Date date=new java.util.Date();
long l = date.getTime();
java.sql.Date sqlDate=new java.sql.Date(l);
相关文章
相关标签/搜索