Maison >base de données >tutoriel mysql >Comment utiliser correctement setDate() dans PreparedStatements pour éviter IllegalArgumentException ?
IllegalArgumentException
avec setDate()
dans les déclarations préparéesLa 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!