ホームページ >Java >&#&チュートリアル >JDBC データベースで java.time.LocalDate オブジェクトを挿入および取得する方法

JDBC データベースで java.time.LocalDate オブジェクトを挿入および取得する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-20 08:53:10174ブラウズ

How to Insert and Retrieve java.time.LocalDate Objects in JDBC Databases?

H2 のような SQL データベースへの java.time.LocalDate オブジェクトの挿入とフェッチ

質問: java.time 型の処理方法SQL データベースを使用した JDBC 経由の LocalDate などH2?

従来のアプローチ: PreparedStatement::setDate および ResultSet::getDate の使用は、古い java.sql.Date 型に対して機能します。ただし、これらの問題のあるレガシー クラスは避けることが望ましいです。

最新のアプローチ: 2 つの主なルートがあります:

  1. JDBC 4.2 準拠ドライバー: JDBC ドライバーが JDBC 4.2 以降をサポートしている場合は、直接操作できます。 java.time オブジェクト。これらのドライバーには、データ型変換用の setObject メソッドと getObject メソッドがあります。
  2. JDBC 4.2 以前の古いドライバー: JDBC 4.2 より前のドライバーの場合、一時的に java.time オブジェクトを同等の java.sql オブジェクトに変換します。そしてその逆も同様です。レガシー クラスに追加された新しい変換メソッドを使用します。

JDBC 4.2 準拠ドライバーの使用例:

// Insert LocalDate as SQL DATE
preparedStatement.setObject(1, myLocalDate);

// Retrieve LocalDate from SQL DATE
LocalDate localDate = myResultSet.getObject("my_date_column", LocalDate.class);

非準拠ドライバーの使用例ドライバー:

// Convert LocalDate to java.sql.Date for insertion
java.sql.Date mySqlDate = java.sql.Date.valueOf(myLocalDate);
preparedStatement.setDate(1, mySqlDate);

// Convert java.sql.Date to LocalDate after retrieval
LocalDate localDate = mySqlDate.toLocalDate();

推奨事項: 可能な限り JDBC 4.2 準拠のアプローチを使用してください。よりシンプルでタイプセーフです。ただし、JDBC 4.2 をサポートしていないドライバーでは、非準拠のメソッドを引き続き使用できます。

以上がJDBC データベースで java.time.LocalDate オブジェクトを挿入および取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。