ホームページ >データベース >mysql チュートリアル >JDBC を使用して SQL データベースに Java.time オブジェクトを挿入および取得するにはどうすればよいですか?
Java.time オブジェクトと JDBC および SQL データベースの統合
この記事では、Java Database Connectivity (JDBC) を使用して java.time.LocalDate
オブジェクトを SQL データベースとシームレスに統合する方法を説明します。
JDBC 4.2 以降: 直接対話
最新の JDBC ドライバー (JDBC 4.2 以降) は、java.time
オブジェクトの直接サポートを提供します。 H2 データベース ドライバーのようなドライバーは、効率的なデータ転送のために setObject
メソッドと getObject
メソッドを利用します。 LocalDate
を挿入するには、PreparedStatement.setObject
を使用して適切なオブジェクト タイプを指定する必要があります。 取得では ResultSet.getObject
を使用し、同様に型安全性を強化するために予期される戻り値の型を指定します。
非準拠の JDBC ドライバーの処理
JDBC 4.2 に準拠していない古いドライバーの場合は、従来の java.sql
日時クラスを利用する必要があります。 LocalDate
を使用して java.sql.Date
を java.sql.Date.valueOf(myLocalDate)
に変換します。 逆に、取得した java.sql.Date
を LocalDate
を使用して java.sql.Date.toLocalDate()
に変換します。
例 (H2 データベース)
次の例は、H2 データベースを使用した準拠アプローチと非準拠アプローチの両方を示しています。
<code class="language-java">// JDBC 4.2 compliant approach LocalDate today = LocalDate.now(); preparedStatement.setObject(1, today.minusDays(1)); // Non-compliant approach java.sql.Date mySqlDate = java.sql.Date.valueOf(myLocalDate); preparedStatement.setDate(1, mySqlDate);</code>
java.time フレームワークの活用
java.time
フレームワーク (Java 8 以降で利用可能) は、従来の日時クラスに取って代わります。 特に JDBC 4.2 準拠のドライバーでは、データベースとの対話で java.time
オブジェクトを直接使用することをお勧めします。 多くの最新の JDBC ドライバーと ORM ( Hibernate 5.0 など) は、 java.time
型のネイティブ サポートを提供していることに注意してください。
重要な考慮事項
java.time.LocalDate
データ型にマップされます。DATE
java.time
java.time
以上がJDBC を使用して SQL データベースに Java.time オブジェクトを挿入および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。