Heim >Datenbank >MySQL-Tutorial >Wie verwende ich setDate() in Java PreparedStatements richtig, um „IllegalArgumentException' zu vermeiden?
Um die Codestandardisierung zu verbessern, müssen Sie hartcodierte SQL-Variablen durch vorbereitete Anweisungen ersetzen und diese binden. Bei der Verwendung der setDate()-Methode tritt jedoch ein Problem auf.
<code class="language-java">String vDateMDYSQL = vDateMDY; java.sql.Date date = new java.sql.Date(0000-00-00); ... prs.setDate(2, date.valueOf(vDateMDYSQL));</code>
Beim Ausführen der SQL-Anweisung ist der folgende Fehler aufgetreten:
<code>java.lang.IllegalArgumentException at java.sql.Date.valueOf(Date.java:138)</code>
Das Problem besteht darin, dass die Datumsvariable falsch mit 0000-00-00 als Standardwert initialisiert wird. Um dieses Problem zu beheben, ziehen Sie beim Umgang mit Datumsangaben die folgenden Alternativen in Betracht:
Für Tabellen mit dem Spaltentyp DATE:
Verwenden Sie die Zeichenfolge:
<code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
Verwenden Sie java.util.Date:
<code class="language-java"> ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
Aktuelles Datum abrufen:
<code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>
Für Tabellen mit den Spaltentypen TIMESTAMP oder DATETIME:
Verwenden Sie die Zeichenfolge:
<code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
Verwenden Sie java.util.Date:
<code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
Holen Sie sich den aktuellen Zeitstempel:
<code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>
Verwenden Sie eine der oben genannten Methoden, um das Datum in der vorbereiteten Anweisung korrekt festzulegen und so den aufgetretenen Fehler zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie verwende ich setDate() in Java PreparedStatements richtig, um „IllegalArgumentException' zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!