Heim > Java > javaLernprogramm > 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?

Barbara Streisand
Freigeben: 2024-12-20 08:53:10
Original
172 Leute haben es durchsucht

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 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:

  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 bei Treibern vor JDBC 4.2 vorübergehend java.time-Objekte in ihre java.sql-Entsprechungen 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);
Nach dem Login kopieren

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();
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage