問題:如何處理java.time 類型就像透過JDBC 使用SQL 資料庫的LocalDate 一樣,例如H2?
傳統方法: 使用PreparedStatement::setDate 和ResultSet::getDate 適用於過時的java.sql.Date 類型。但是,最好避免這些有問題的遺留類別。
現代方法:有兩條主要路線:
使用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中文網其他相關文章!