關於PreparedStatement插入Date型別值的方法
阿新 • • 發佈:2018-12-30
分析:
java.util.Date轉換為java.sql.Date帶時分秒
java.util.Date需要轉換為java.sql.Date,常規的方式轉換過來只可以得到年月日,如若要取得時分秒,可以用Date的子類Timestamp
Java在向資料庫中插入時間的時候,常常遇到時、分、秒丟失的情況,這種情況的發生一般是由於時間日期物件使用錯誤造成的。
java.util.Date是不能直接插入資料庫中的,雖然它包含了日期和時分秒。java.sql.Date可以直接插入資料庫,但是它只有日期而沒有時間;java.sql.Time可以直接插入資料庫,但是它只有時間,沒有日期;以上這些往往不能滿足我們的需要。
如果我們要插入日期和時間,那麼就要相辦法來使用java.sql.Timestamp來向資料庫插入。java.sql.Timestamp可包含了日前和到毫秒的時間值,在程式中,我們常常是使用的java.util.Date,所以就要有解決的方法來實現。
由此可以看到我們向資料庫傳入或傳出值是儘量不要使用getDate方法或setDate方法,這樣會丟失資料,解決的辦法是:
一、改用java.sql.Timestamp
二、傳日期形式的字串,在儲存過程接收到後在儲存過程中使用to_date處理,對於輸出的使用to_char處理
三、傳TO_DATE字串進儲存過程
我這裡做了對應三種方法的處理,請選用