码迷,mamicode.com
首页 > 数据库 > 详细

java.util.Date 和Java.sql.Date、java.sql.Time、java.sql.Timestamp的互换

时间:2014-11-08 18:05:24      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   java   sp   数据   div   

 

1、sql时间类型转util时间类型

  原理:java.sql.Date、java.sql.Time、java.sql.Timestamp三个类都是java.util.Date的子类,故根据多态的设计原理,父类引用指向子类对象,可以直接转换。

  即:

    java.util.Date uDate = new java.sql.Date(0);

    或:  java.util.Date uDate = new java.sql.Time(0);

    或:  java.util.Date uDate = new java.sql.Timestamp(0);

  利用泛型设计toUtil()方法:

    public static <T extends java.util.Date> java.util.Date toUtil(T t){
        java.util.Date date = t;
        return date;
    }


 

   

2、util时间类型转sqll时间类型

  原理:通过java.util.Date类的getTime()方法可以轻而易举的获得当前时间的毫秒数,这个long类型的数据至关重要,是实例化三个sql时间类型的构造器必要参数。

  即:

    long millionSeconds = java.util.Date.getTime();

    java.sql.Date sDate = new java.sql.Date(millionSeconds);

    或:  java.sql.Time sTime = new java.sql.Time(millionSeconds);

    或:  java.sql.Timestamp sTimestamp = new java.sql.Timestamp(millionSeconds);

  利用泛型设计toSql()方法:

    首先设计一个枚举类Type:

    enum Type {
      DATE, TIME, TIMESTAMP
    }

    其中规定了从toSql()方法中要获取的sql时间类型:DATE对应java.sql.Date,TIME对应java.sql.Time,TIMESTAMP对应java.sql.Timestamp。

  

    

    public static <T extends java.util.Date> T toSql(java.util.Date utilDate,
            Type type) {
        T t = null;
        long millionSeconds = utilDate.getTime();

        switch (type) {
        case DATE:
            t = (T) new java.sql.Date(millionSeconds);
            break;
        case TIME:
            t = (T) new java.sql.Time(millionSeconds);
            break;
        case TIMESTAMP:
            t = (T) new java.sql.Timestamp(millionSeconds);
            break;
        default:
            break;
        }
        return t;
    }

   java在设计Date类时先设计了util中的Date,随着各大数据库的出现,原先的Date类型无法满足数据库中所保存的时间类型,这才衍生出了sql中的各种时间类,对Mysql数据库的支持使得java.sql.Date、java.sql.Time、java.sql.Timestamp应运而生。呵呵,这只是我个人的理解而已。

 

java.util.Date 和Java.sql.Date、java.sql.Time、java.sql.Timestamp的互换

标签:style   blog   io   color   os   java   sp   数据   div   

原文地址:http://www.cnblogs.com/lastofthewilds/p/4083544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!