Heim >Datenbank >MySQL-Tutorial >Wie verwende ich setDate() in PreparedStatements richtig, um IllegalArgumentException zu vermeiden?

Wie verwende ich setDate() in PreparedStatements richtig, um IllegalArgumentException zu vermeiden?

Linda Hamilton
Linda HamiltonOriginal
2025-01-18 22:37:10250Durchsuche

How to Properly Use setDate() in PreparedStatements to Avoid IllegalArgumentException?

Vermeiden von IllegalArgumentException mit setDate() in vorbereiteten Anweisungen

Die Migration von hartcodierten SQL-Abfragen zu parametrisierten vorbereiteten Anweisungen verbessert die Wartbarkeit und Sicherheit des Codes. Allerdings kann die Verwendung von setDate() manchmal zu IllegalArgumentException führen. Dieser Leitfaden zeigt Lösungen mit java.sql.Date und java.sql.Timestamp.

Umgang mit Datumsspalten

Verwenden Sie für Datenbankspalten vom Typ DATE diese Methoden, um den Datumsparameter korrekt festzulegen:

  • Verwenden einer Zeichenfolge: Geben Sie eine Datumszeichenfolge im Format „JJJJ-MM-TT“ an:

    <code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
  • Verwenden eines java.util.Date: Konvertieren eines java.util.Date-Objekts:

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
  • Aktuelles Datum einstellen: Aktuelles Datum einfügen:

    <code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>

Verarbeitung von TIMESTAMP- oder DATETIME-Spalten

Wenn Ihre Datenbankspalte vom Typ TIMESTAMP oder DATETIME ist, verwenden Sie setTimestamp() mit diesen Optionen:

  • Verwenden einer Zeichenfolge: Geben Sie eine Datums- und Uhrzeitzeichenfolge im Format „JJJJ-MM-TT HH:mm:ss[.f...]“ an:

    <code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
  • Verwenden eines java.util.Date: Konvertieren eines java.util.Date-Objekts:

    <code class="language-java"> java.util.Date endDate = ...; // Your java.util.Date object
     ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
  • Aktuellen Zeitstempel festlegen: Aktuellen Zeitstempel einfügen:

    <code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>

Durch Befolgen dieser Richtlinien können Sie Datums- und Zeitstempelparameter in Ihren vorbereiteten Kontoauszügen zuverlässig festlegen und so das IllegalArgumentException vermeiden. Denken Sie daran, die geeignete Methode (setDate() oder setTimestamp()) basierend auf dem Datentyp Ihrer Datenbankspalte auszuwählen.

Das obige ist der detaillierte Inhalt vonWie verwende ich setDate() in PreparedStatements richtig, um IllegalArgumentException zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn