Frage: Wie man mit java.time-Typen umgeht wie LocalDate über JDBC mit einer SQL-Datenbank, wie z H2?
Legacy-Ansatz: Die Verwendung von PreparedStatement::setDate und ResultSet::getDate funktioniert für den veralteten Typ java.sql.Date. Es ist jedoch vorzuziehen, diese problematischen Legacy-Klassen zu vermeiden.
Moderner Ansatz: Es gibt zwei Hauptrouten:
Beispiel für die Verwendung eines JDBC 4.2-kompatiblen Treibers:
// Insert LocalDate as SQL DATE preparedStatement.setObject(1, myLocalDate); // Retrieve LocalDate from SQL DATE LocalDate localDate = myResultSet.getObject("my_date_column", LocalDate.class);
Beispiel für die Verwendung eines nicht kompatiblen Treibers Treiber:
// 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();
Empfehlung: Verwenden Sie wann immer möglich den JDBC 4.2-kompatiblen Ansatz. Es ist einfacher und typsicher. Die nicht kompatible Methode kann jedoch weiterhin für Treiber verwendet werden, die JDBC 4.2 nicht unterstützen.
Das obige ist der detaillierte Inhalt vonWie füge ich java.time.LocalDate-Objekte in JDBC-Datenbanken ein und rufe sie ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!