數據庫查詢時間沒有了時分秒的解決辦法
問題出處,公司一個項目中使用動態sql方式查詢Oracle數據庫,在展現時Date類型字段只展現日期,無時分秒。
分析:
一、衆所周知Oralce的日期類型有不少種,Date ,Timestamp等。其中Date類型對用的是java.sql.Date類型,Timestamp對用的是java.sql.Timestamp類型。這兩個類型均繼承自java.util.Date,其中java.sql.Date是沒有時分秒的你們能夠查看一下javaApi
二、ResultSet 的getObject(*)方法對用Date類型默認返回的是java.sql.Date
三、網上不少人提供的解決方案是將數據庫Date類型改成Timestamp類型,顯示當中數據庫類型DBA是不會容許你改動的,且Oracle中對於時分秒要求不嚴格的地方DBA反而是建議用Date而不用Timestamp以節省資源
四、ibatis的ResultMap中對Date類型指定爲Timestamp卻可以正常顯示
通過一番思考後發現對用Date類型的字段使用rs.getTimestamp(*)便可正常顯示
方案2、
增長服務器/Java應用的虛擬機參數:-Doracle.jdbc.V8Compatible=「true」 java