„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie füge ich java.time.LocalDate-Objekte in JDBC-Datenbanken ein und rufe sie ab?

Wie füge ich java.time.LocalDate-Objekte in JDBC-Datenbanken ein und rufe sie ab?

Veröffentlicht am 14.01.2025
Durchsuche:689

How to Insert and Retrieve java.time.LocalDate Objects in JDBC Databases?

Einfügen und Abrufen von java.time.LocalDate-Objekten in/aus einer SQL-Datenbank wie H2

Frage: Wie man mit java.time-Typen umgeht wie LocalDate über JDBC mit einer SQL-Datenbank, wie zum Beispiel H2?

Legacy Ansatz: Die Verwendung von PreparedStatement::setDate und ResultSet::getDate funktioniert für den veralteten Typ java.sql.Date. Es ist jedoch besser, diese problematischen Legacy-Klassen zu vermeiden.

Moderner Ansatz: Es gibt zwei Hauptrouten:

  1. JDBC 4.2-kompatible Treiber: Wenn der JDBC-Treiber JDBC 4.2 oder höher unterstützt, können Sie direkt mit java.time-Objekten arbeiten. Diese Treiber verfügen über die Methoden setObject und getObject für Datentypkonvertierungen.
  2. Ältere Treiber, vor JDBC 4.2: Konvertieren Sie für Treiber vor JDBC 4.2 vorübergehend java.time-Objekte in ihre java.sql-Äquivalente und umgekehrt. Verwenden Sie neue Konvertierungsmethoden, die zu Legacy-Klassen hinzugefügt wurden.

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:

// 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 nach Möglichkeit 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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3