"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment insérer et récupérer des objets java.time.LocalDate dans des bases de données JDBC ?

Comment insérer et récupérer des objets java.time.LocalDate dans des bases de données JDBC ?

Publié le 2025-01-14
Parcourir:727

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

Insertion et récupération d'objets java.time.LocalDate vers/depuis une base de données SQL comme H2

Question : Comment gérer les types java.time comme LocalDate via JDBC avec une base de données SQL, telle que H2 ?

Approche héritée : Utilisation PreparedStatement::setDate et ResultSet::getDate fonctionnent pour le type java.sql.Date obsolète. Cependant, il est préférable d'éviter ces classes héritées problématiques.

Approche moderne : Il existe deux voies principales :

  1. Pilotes conformes à JDBC 4.2 : Si le pilote JDBC prend en charge JDBC 4.2 ou version ultérieure, vous pouvez travailler directement avec les objets java.time. Ces pilotes disposent des méthodes setObject et getObject pour les conversions de types de données.
  2. Pilotes plus anciens, antérieurs à JDBC 4.2 : Pour les pilotes antérieurs à JDBC 4.2, convertissez temporairement les objets java.time en leurs équivalents java.sql et vice versa. Utilisez les nouvelles méthodes de conversion ajoutées aux classes existantes.

Exemple d'utilisation du pilote compatible 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);

Exemple d'utilisation d'un pilote non conforme :

// 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();

Recommandation : Utilisez l'approche conforme à JDBC 4.2 autant que possible. C'est plus simple et sécurisé. Cependant, la méthode non conforme peut toujours être utilisée pour les pilotes qui ne prennent pas en charge JDBC 4.2.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3