「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JDBC データベースで java.time.LocalDate オブジェクトを挿入および取得する方法

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

2025 年 1 月 14 日に公開
ブラウズ:481

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

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

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

Legacy など)アプローチ: 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.

をサポートしていないドライバーに対しては、非準拠のメソッドも引き続き使用できます。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3