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
Freigeben: 2025-01-18 22:37:10
Original
221 Leute haben es durchsucht

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:

     ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));
    Nach dem Login kopieren
  • Verwenden eines java.util.Date: Konvertieren eines java.util.Date-Objekts:

     java.util.Date endDate = ...; // Your java.util.Date object
     ps.setDate(2, new java.sql.Date(endDate.getTime()));
    Nach dem Login kopieren
  • Aktuelles Datum einstellen: Aktuelles Datum einfügen:

     ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));
    Nach dem Login kopieren

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:

     ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));
    Nach dem Login kopieren
  • Verwenden eines java.util.Date: Konvertieren eines java.util.Date-Objekts:

     java.util.Date endDate = ...; // Your java.util.Date object
     ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));
    Nach dem Login kopieren
  • Aktuellen Zeitstempel festlegen: Aktuellen Zeitstempel einfügen:

     ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));
    Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage