java.util.Dateとjava.sql.Date



Answers

遅い編集: Java 8以降、 java.util.Datejava.sql.Dateどちらも使用しないでください。そうでない場合は、 java.time基づいてjava.timeパッケージを使用する方が好きです。 Java 8を使用していない場合は、元の応答があります。

java.sql.Date - JDBCを使用するライブラリのメソッド/コンストラクタを呼び出すとき。 そうでなければ。 JDBCを明示的に処理しないアプリケーション/モジュールのデータベース・ライブラリーに依存関係を導入する必要はありません。

java.util.Date - それを使用するライブラリを使用する場合 さもなければ、いくつかの理由から、できるだけ少ない:

  • これは変更可能です。つまり、メソッドに渡すか、メソッドから返すたびに防御的なコピーを作成する必要があります。

  • それは日付をとてもうまく処理しません。あなたのような人たちは本当に、日付処理クラスを考えるべきです。

  • 今、juDはうまくやっていないので、大変なCalendarクラスが導入されました。 彼らはまた、変更する可能性があり、あなたと選択肢がない場合は避けるべきです。

  • Joda Time APIJava 7に移行して新しい公式日付処理APIになる可能性もある )のような優れた選択肢があります。

Jodaのような新しい依存関係を導入するのが難しいと感じたら、オブジェクトのタイムスタンプフィールドに使用するのは悪いことではありません。

Question

java.util.Datejava.sql.Date :いつどのようなものを使用するのですか?




私は同じ問題を抱えていました。準備されたステートメントに現在の日付を挿入するのが最も簡単な方法です。

preparedStatement.setDate(1, new java.sql.Date(new java.util.Date().getTime()));



Related