JDBC關於時間的存取

Oracle數據庫默認時間存儲是java.sql.date,而java程序中的時間默認是java.util.date,因此經過JDBC存取的 時候會涉及到時間的轉換問題。 java

一、日期存取sql

  存入數據庫的時候,先用SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd "); 數據庫

  進行格式轉換,而後用Date d = sbf.parse(birthday);spa

  即將字符串轉換成util.date類型 orm

  stm.setDate(4, new java.sql.Date(d.getTime()));字符串

  即用PreparedStatement替換Sql語句中的問號時轉換成數據庫默認存儲的Date類型。 get

  取出時間的時候直接用 Date d = rs.getDate("birthday");date

  即取出集裝箱的數據。 程序

二、時間存取方法

  數據庫中默認不存儲具體時間,因此要用到時間戳Timpstamp類來處理

  存入時間的時候,先用SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  進行格式轉換,而後用Date d = sbf.parse(birthday); 即將字符串轉換成util.date類型

  stm.setTimestamp(4, new java.sql.Timestamp(d.getTime()));這樣日期和時間均可以一塊兒存入數據庫

  取數據的時候直接用 Date d = rs.getTimestamp("birthday");就能夠了

 

說明:因爲JDBC屬於數據訪問層,它是爲上一層(業務邏輯層)提供服務的,業務邏輯層通常不與SQL打交道,所以在業務邏輯層是不會
* 用到java.sql包中的任何類。例如:本方法是返回記錄的出生日期,即Date類型,未來該方法是在業務邏輯層調用的,因此該
* 方法返回的Date類型應該是java.util包中的Date類,因此須要在該方法內部實現java.sql.Date與java.util.Date之間
* 的轉換工做

相關文章
相關標籤/搜索