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

转载地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值