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

來源:互聯網
上載者:User

標籤: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的互換

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.