hibenate 操作oracle 日期問題____oracle
來源:互聯網
上載者:User
hibernate 使用日期,
oracle 可以設定為 Date ,Date 可以精確到秒,在java向資料庫添加精確到秒的日期時,可以直接
set(new Date()),這樣在資料庫中顯示的是 2015/10/17 16:15:13,直接用session.get()取出來,得到
的日期是 2015-10-17 16:15:13.0
當oracle 資料庫設定成 timestamp(6) 時 ,直接set(new Date())資料庫顯示的是: 17-10月-15
04.32.11.566000 下午 。java直接session.get()取出來時: 2015-10-17 16:32:11.566 ,在資料
庫中可以設定timestamp(6) 的精度timestamp(0)。當然取出來的資料可以格式化。
java實體類中日期類型要和hbm.xml設定檔中的日期類型一樣,這裡都為java.util.Date
<property name="stuBirth" type="date" column="stu_birth" />中的date預設為java.sql.Date 。
java.util.Date 對應oracle中的timestamp(6),
java.sql.Date 對應oracle中的date。
當類型不一樣(如java實體類用java.util.Date,hbm.xml用java.sql.Date )時會出現插入new Date()
,只會插入日期2015-10-17。查詢只會查到日期2015-10-17。所以此處一定要注意,一定要保證java實
體類和hbm.xml的日期類型一致(),hbm中的類型可以不寫,會根據java類自動轉換類型;
如果想改變 資料庫中的日期格式,就必須用在插入的時候用sql to_date()轉了,