PreparedStatement
Der Fehler entsteht durch den Versuch, einen String mit setDate
zu verwenden, was ein java.sql.Date
-Objekt erfordert. So gehen Sie korrekt mit String-Datumseingaben um:
Methode 1: String in java.sql.Date
Dieser Ansatz wandelt Ihr String-Datum in ein java.sql.Date
-Objekt um, bevor es an setDate
übergeben wird. Dies erfordert ein DateFormat
-Objekt (z. B. SimpleDateFormat
), um die Zeichenfolge zu analysieren:
<code class="language-java">java.sql.Date date = new java.sql.Date(dateFormatMDY.parse(vDateMDYSQL).getTime()); prs.setDate(2, date); </code>
Denken Sie daran, mögliche ParseException
Ausnahmen während des Analysevorgangs zu behandeln.
Methode 2: Verwendung von setString
und Datenbankkonvertierung
Diese Methode nutzt setString
und verlässt sich auf die Datenbank, um die Datumsumrechnung durchzuführen. Ihre SQL-Abfrage muss eine to_date
-Funktion (oder eine entsprechende Funktion für Ihr Datenbanksystem) enthalten, um die Zeichenfolge in ein Datum umzuwandeln:
<code class="language-java">prs.setString(2, vDateMDYSQL); // ... SQL statement ... to_date(?, 'MM/dd/yyyy HH:mm:ss') // ... rest of the SQL statement ...</code>
Die Formatzeichenfolge („MM/tt/jjjj HH:mm:ss“) muss mit dem Format Ihrer vDateMDYSQL
-Zeichenfolge übereinstimmen. Passen Sie es nach Bedarf an Ihr spezifisches Datumsformat an.
Die optimale Methode hängt von den Anforderungen Ihrer Anwendung und den Datenbankfunktionen ab. Methode 1 bietet eine bessere Kontrolle auf der Clientseite, erfordert jedoch eine Fehlerbehandlung. Methode 2 vereinfacht den Java-Code, verlagert jedoch den Konvertierungsaufwand auf die Datenbank. Berücksichtigen Sie bei der Auswahl des besten Ansatzes Faktoren wie Datenbankleistung und Fehlerbehandlung.
Das obige ist der detaillierte Inhalt vonWie verwende ich setDate in PreparedStatement mit String-Eingaben richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!