Maison > base de données > tutoriel mysql > Comment utiliser correctement setDate() dans PreparedStatements pour éviter IllegalArgumentException ?

Comment utiliser correctement setDate() dans PreparedStatements pour éviter IllegalArgumentException ?

Linda Hamilton
Libérer: 2025-01-18 22:37:10
original
204 Les gens l'ont consulté

How to Properly Use setDate() in PreparedStatements to Avoid IllegalArgumentException?

Éviter IllegalArgumentException avec setDate() dans les déclarations préparées

La migration des requêtes SQL codées en dur vers des instructions préparées paramétrées améliore la maintenabilité et la sécurité du code. Cependant, utiliser setDate() peut parfois conduire à IllegalArgumentException. Ce guide présente des solutions utilisant java.sql.Date et java.sql.Timestamp.

Gestion des colonnes DATE

Pour les colonnes de base de données de type DATE, utilisez ces méthodes pour définir correctement le paramètre de date :

  • Utilisation d'une chaîne : Fournissez une chaîne de date au format 'aaaa-MM-jj' :

    <code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
    Copier après la connexion
  • Utilisation d'un java.util.Date : Convertir un java.util.Date objet :

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
    Copier après la connexion
  • Définition de la date actuelle : Insérez la date actuelle :

    <code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>
    Copier après la connexion

Gestion des colonnes TIMESTAMP ou DATETIME

Si la colonne de votre base de données est de type TIMESTAMP ou DATETIME, utilisez setTimestamp() avec ces options :

  • Utilisation d'une chaîne : Fournissez une chaîne de date et d'heure au format 'aaaa-MM-jj HH:mm:ss[.f...]' :

    <code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
    Copier après la connexion
  • Utilisation d'un java.util.Date : Convertir un java.util.Date objet :

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
    Copier après la connexion
  • Définition de l'horodatage actuel : Insérez l'horodatage actuel :

    <code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>
    Copier après la connexion

En suivant ces directives, vous pouvez définir de manière fiable les paramètres de date et d'horodatage dans vos déclarations préparées, en évitant le IllegalArgumentException. N'oubliez pas de choisir la méthode appropriée (setDate() ou setTimestamp()) en fonction du type de données de votre colonne de base de données.

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