Maison > Java > javaDidacticiel > 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 ?

Barbara Streisand
Libérer: 2024-12-20 08:53:10
original
172 Les gens l'ont consulté

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, comme H2 ?

Approche héritée : L'utilisation de PreparedStatement::setDate et ResultSet::getDate fonctionne 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 ont 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 d'un 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);
Copier après la connexion

Exemple d'utilisation d'un pilote non conforme Pilote :

// 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();
Copier après la connexion

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal