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
Linda Hamiltonoriginal
2025-01-18 22:37:10171parcourir

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

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

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!

Déclaration:
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