jdbc操作Date

作爲一個開發者,使用jdbc是最基本的要求。

但是jdbc對應操作date類型的數據和hibernate是不同的,hibernate不需要考慮date是util .date還是sql.date也不需要考慮存入的date是否存有時分秒了。

 

建議:Jdbc而言最好的是數據庫中的date類型對應的實體類的類型不要date而要string這樣好操作,又可以實現日期查詢

 

 

常用的時間格式oracle中有 yyyy-mm-ddhh24:mi:ss  而在Java中有些區別yyyy-MM-dd HH:mm:ss 這點還是經常容易模糊的。

 

1 存入數據庫的方式:

第一種是傳入util.date 然後轉成sql.date 優點操作簡單,在傳入util.date的時候日期格式中是包含有有時分秒的,但是轉化爲sql.date之後就只有年月日了,時分秒就沒有了,當你想在前臺取出精確的小時的數據時就會發現所有的數據的時分秒都是一樣的,都是00:00:00明顯不對,輸出一看就會發現數據庫中存的數據是有年月日,後面的都是默認的數據


所以不建議用這種方式插入數據因爲數據存入時對時間的存入是不精確的。

 

第二種方式:就是通過to_date(字段名,’ yyyy-mm-dd hh24:mi:ss’)

這種方式存入了精確的時間數據。


優點:存入的數據精確度高,就是操作的時候比較麻煩。

推薦使用這種,因爲你不知道後面系統的功能要實現到什麼程度,而且對後期數據的統計,功能的擴展都有大用

 

接下來就到取數據了。

一般的sql查詢出來的時間格式默認是yyyy-MM-dd是沒有時分秒的。

而且這種取法 直接用rs.getDate(“數據庫的字段名”);

select * fromapplyapproval;

 

而你想要取到精確的時分秒數據時就要這樣


注意:這裏to_char(applytime,'yyyy-mm-ddhh24:mi:ss') as applytime一定要有as applytime查詢出來的字段纔是applytime

要不然就會變成這樣:


to_char(passapprovaltime,'yyyy-mm-ddhh24:mi:ss')字段就變成這樣了,你在jdbc操作取數據時就用以錯。

Rs.get是用以出錯。

現在還有一點就是容易出錯的:我們都認爲按上面查詢出來的日期數據是date類型,在jdbc這樣取:rs.getDate(“applytime”);就可以取到數據,這樣的話就會報錯。其實這樣取回的數據是varchar類型,所以要這樣取rs.getString(“applytime”);返回的是Srtring類型


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章