首頁 > Java > java教程 > 如何在 JDBC 資料庫中插入和檢索 java.time.LocalDate 物件?

如何在 JDBC 資料庫中插入和檢索 java.time.LocalDate 物件?

Barbara Streisand
發布: 2024-12-20 08:53:10
原創
172 人瀏覽過

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

插入SQL 資料庫(如H2)並取得java.time.LocalDate 物件

問題:如何處理java.time 類型就像透過JDBC 使用SQL 資料庫的LocalDate 一樣,例如H2?

傳統方法: 使用PreparedStatement::setDate 和ResultSet::getDate 適用於過時的java.sql.Date 類型。但是,最好避免這些有問題的遺留類別。

現代方法:有兩條主要路線:

  1. 相容JDBC 4.2 的驅動程式: 如果JDBC 驅動程式支援JDBC 4.2或更高版本,則可以直接使用java.time 物件。這些驅動程式具有用於資料類型轉換的 setObject 和 getObject 方法。
  2. 舊版驅動程序,Pre-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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板