In Ihrem Code versuchen Sie, den Wert einer DATE-Spalte in der Datenbank mithilfe von festzulegen setDate()-Methode. Sie übergeben jedoch ein java.sql.Date-Objekt, das mit dem Wert 0000-00-00 initialisiert wurde, was ein ungültiges Datum ist.
Die richtige Methode zum Festlegen des Werts einer DATE-Spalte mit setDate() soll ein java.util.Date-Objekt übergeben, das den korrekten Datumswert enthält. Sie können ein java.util.Date-Objekt mit dem neuen Konstruktor java.util.Date() oder mit einer der vielen statischen Factory-Methoden erstellen, die in der Klasse java.util.Calendar verfügbar sind.
Zum Beispiel: Der folgende Code zeigt, wie man den Wert einer DATE-Spalte mithilfe eines java.util.Date-Objekts festlegt, das das aktuelle Datum enthält:
import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Calendar; public class SetDateExample { public static void main(String[] args) throws SQLException { // Create a connection to the database Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "user", "password"); // Create a prepared statement to insert a new row into the table String sql = "INSERT INTO my_table (name, date_column) VALUES (?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // Set the name and date_column values for the new row pstmt.setString(1, "John Doe"); pstmt.setDate(2, new Date(Calendar.getInstance().getTime().getTime())); // Execute the prepared statement pstmt.executeUpdate(); // Close the prepared statement and connection pstmt.close(); conn.close(); } }
Sie können auch setString() verwenden Methode, um den Wert einer DATE-Spalte festzulegen, aber Sie müssen zuerst das java.util.Date-Objekt mit der toString()-Methode in einen String konvertieren. Der folgende Code zeigt beispielsweise, wie der Wert einer DATE-Spalte mithilfe der setString()-Methode festgelegt wird:
import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Calendar; public class SetStringExample { public static void main(String[] args) throws SQLException { // Create a connection to the database Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "user", "password"); // Create a prepared statement to insert a new row into the table String sql = "INSERT INTO my_table (name, date_column) VALUES (?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // Set the name and date_column values for the new row pstmt.setString(1, "John Doe"); pstmt.setString(2, new Date(Calendar.getInstance().getTime().getTime()).toString()); // Execute the prepared statement pstmt.executeUpdate(); // Close the prepared statement and connection pstmt.close(); conn.close(); } }
Das obige ist der detaillierte Inhalt vonWie verwende ich „setDate' in einem Java „PreparedStatement' korrekt, um ungültige Datumsfehler zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!