問題: 如何處理java.time 類型類似於透過JDBC 使用SQL 資料庫的LocalDate,例如H2?
Legacy方法: 使用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 的驅動程式。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3