Maison > base de données > tutoriel mysql > Comment utiliser JDBC pour insérer et récupérer des objets Java.time dans une base de données SQL ?

Comment utiliser JDBC pour insérer et récupérer des objets Java.time dans une base de données SQL ?

Susan Sarandon
Libérer: 2025-01-22 01:26:09
original
598 Les gens l'ont consulté

How Do I Use JDBC to Insert and Retrieve Java.time Objects in an SQL Database?

Intégration des objets Java.time avec les bases de données JDBC et SQL

Cet article montre comment intégrer de manière transparente java.time.LocalDate des objets aux bases de données SQL à l'aide de Java Database Connectivity (JDBC).

JDBC 4.2 et versions ultérieures : interaction directe

Les pilotes JDBC modernes (JDBC 4.2 et supérieur) offrent une prise en charge directe des java.time objets. Les pilotes comme le pilote de base de données H2 utilisent les méthodes setObject et getObject pour un transfert de données efficace. Insérer un LocalDate implique d'utiliser PreparedStatement.setObject, en spécifiant le type d'objet approprié. La récupération utilise ResultSet.getObject, spécifiant de la même manière le type de retour attendu pour une sécurité de type améliorée.

Gestion des pilotes JDBC non conformes

Pour les pilotes plus anciens qui ne sont pas conformes à JDBC 4.2, vous devrez tirer parti des classes date-heure java.sql héritées. Convertissez LocalDate en java.sql.Date en utilisant java.sql.Date.valueOf(myLocalDate). À l’inverse, convertissez le java.sql.Date récupéré en LocalDate en utilisant java.sql.Date.toLocalDate().

Exemple illustratif (base de données H2)

L'exemple suivant présente des approches conformes et non conformes utilisant la base de données H2 :

<code class="language-java">// JDBC 4.2 compliant approach
LocalDate today = LocalDate.now();
preparedStatement.setObject(1, today.minusDays(1));

// Non-compliant approach
java.sql.Date mySqlDate = java.sql.Date.valueOf(myLocalDate);
preparedStatement.setDate(1, mySqlDate);</code>
Copier après la connexion

Exploiter le framework java.time

Le framework java.time (disponible à partir de Java 8) remplace les anciennes classes date-heure. L'utilisation directe d'objets java.time avec des interactions de base de données est recommandée, en particulier avec les pilotes compatibles JDBC 4.2. Notez que de nombreux pilotes JDBC et ORM modernes (comme Hibernate 5.0 ) fournissent une prise en charge native des java.time types.

Considérations clés

  • java.time.LocalDate correspond au type de données SQL DATE.
  • Les pilotes JDBC sont disponibles auprès d'Oracle, de fournisseurs de bases de données et de bibliothèques tierces.
  • La bibliothèque ThreeTen-Backport étend java.time les fonctionnalités à Java 6 et 7.
  • Les versions 26 et ultérieures d'Android incluent une prise en charge java.time intégrée ; ThreeTenABP adapte ThreeTen-Backport pour les versions antérieures d'Android.

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