今天第一次使用Hibernate做持久化層 不得不承認 用的真的很省事 省略了很多需要操心的事情 .
如:串連開啟關閉 sql代碼 各種異常 方法調用 等等
但是這種安逸帶來的不安全感也是有的 因為底層sql語句不受控制了
然後呢 我以前處理日期實體聲明的都是String類型 然後通過sql語句 to_date(s,'yyyy-MM-dd')
現在呢 ?
很不和諧的給我來個類型轉換異常
org.hibernate.exception.DataException: Could not execute JDBC batch update
Caused by: java.sql.BatchUpdateException: ORA-01861: 文字與格式字串不匹配
錯的很顯然 字串無法直接插入資料庫的date類型欄位中
很惆悵呀 00.
沒轍了 想點子唄 立馬改回Date類型 修改相關對應檔
但是賦值的時候又糾結了
for example
假設我想指定插入日期為 1990-09-03
玩不了了 怎麼都不大好處理
Date date = new Date();
果斷問了下同學 因為那夥計以前用JDBC的時候就一直用Date類型
得知可以用SimpleDateFormat類進行字串日期的格式化
看了下SimpleDateFormat的方法 有個parse(String)方法返回Date對象 有戲!
new SimpleDateFormat("yyyy-MM-dd").parse("2008-10-25");
執行save()操作 插入成功!
接下來執行讀取資料庫操作
但是要求列印如 1990年-9月-3日資料顯示
new SimpleDateFormat("yyyy年-MM月-dd日").format(e.getInvoice_date());
顯示結果1990年-9月-3日
注 : SimpleDateFormat 的format(Object o);無法直接格式化字串