將 Java.time 物件與 JDBC 和 SQL 資料庫整合
本文示範如何使用 Java 資料庫連線 (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 開始提供)取代了舊版日期時間類別。 建議直接使用 java.time
物件進行資料庫交互,特別是對於相容 JDBC 4.2 的驅動程式。 請注意,許多現代 JDBC 驅動程式和 ORM(例如 Hibernate 5.0 )為 java.time
類型提供本機支援。
主要考慮因素
java.time.LocalDate
對應到 SQL DATE
資料型態。 java.time
功能擴展到 Java 6 和 7。 java.time
支援; ThreeTenABP 針對早期 Android 版本調整了 ThreeTen-Backport。 以上是如何使用 JDBC 在 SQL 資料庫中插入和檢索 Java.time 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!