问题:如何处理 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中文网其他相关文章!