PreparedStatement
L'erreur résulte de la tentative d'utilisation d'une chaîne avec setDate
, qui nécessite un objet java.sql.Date
. Voici comment gérer correctement les entrées de date de chaîne :
Méthode 1 : Convertir une chaîne en java.sql.Date
Cette approche convertit votre date de chaîne en un objet java.sql.Date
avant de la transmettre à setDate
. Cela nécessite un objet DateFormat
(par exemple, SimpleDateFormat
) pour analyser la chaîne :
<code class="language-java">java.sql.Date date = new java.sql.Date(dateFormatMDY.parse(vDateMDYSQL).getTime()); prs.setDate(2, date); </code>
N'oubliez pas de gérer les ParseException
exceptions potentielles pendant le processus d'analyse.
Méthode 2 : Utiliser setString
et conversion de base de données
Cette méthode utilise setString
et s'appuie sur la base de données pour effectuer la conversion de date. Votre requête SQL doit inclure une fonction to_date
(ou équivalent pour votre système de base de données) pour convertir la chaîne en date :
<code class="language-java">prs.setString(2, vDateMDYSQL); // ... SQL statement ... to_date(?, 'MM/dd/yyyy HH:mm:ss') // ... rest of the SQL statement ...</code>
La chaîne de format (« MM/jj/aaaa HH:mm:ss ») doit correspondre au format de votre vDateMDYSQL
chaîne. Ajustez si nécessaire pour votre format de date spécifique.
La méthode optimale dépend des besoins de votre application et des capacités de la base de données. La méthode 1 offre un meilleur contrôle côté client mais nécessite une gestion des erreurs. La méthode 2 simplifie le code Java mais déplace la charge de conversion vers la base de données. Tenez compte de facteurs tels que les performances de la base de données et la gestion des erreurs lors du choix de la meilleure approche.
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!