2011-07-20 20 views
0

私は独特の問題に直面しています。java.util.Dateとjava.sql.TimeStampとの競合

データ型(oracle)がDATEであるデータベースフィールドを照会しています。私はrs.getObject( "myDate")としてresultSetから値を取得しています。同じ設定の2つの設定があります。私がrs.getObject( "myDate")。getClass()を書くときの設定では、私はjava.sql.TimeStampを呼び出しており、別の設定ではjava.util.Dateを返しています。私が直面している問題は、日付を無視して日付部分だけを返す日付のオブジェクトを返すときです。例えば、

oracle.jdbc.mapDateToTimestamp 

は、このフォーラムのスレッドを参照してください:

+0

データベースの列は、タイプ+長さの定義は同じですか? – home

答えて

0

ALS情報は:をjava.sql.TimestampはIS java.util.Dateを拡張します。

日付には時間がありますが、ナノ秒ではありませんが、唯一の違いです。

悲しいことに、それは実装されている方法ですが、そうではありません。自分のドキュメントから:

Timestampjava.util.Date間の継承関係は、実際の実装の継承を示し、継承を入力していません。 https://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html

つまり、いくつかのカプセル化を書き留めることを意味します。これは、ハッシュコードがナノ秒と非対称の等価で変化しないなどの多くの欠点を引き起こします。

関連する問題